Rebar y Toolbars XP
Rebar y Toolbars XP
Antonio,
Necesitaría como en las barras de botones, dejar pulsado un botón, me parece recordar que dijiste que todavía no está implementado, pero me hace bastante falta.
¿Alguien me podría dar alguna pista de que mensaje o función del api debería buscar para conseguirlo?
Mi idea es provisionalmente, añadir un método que lo haga.
Un Saludo,
Joaquín
Necesitaría como en las barras de botones, dejar pulsado un botón, me parece recordar que dijiste que todavía no está implementado, pero me hace bastante falta.
¿Alguien me podría dar alguna pista de que mensaje o función del api debería buscar para conseguirlo?
Mi idea es provisionalmente, añadir un método que lo haga.
Un Saludo,
Joaquín
- Antonio Linares
- Site Admin
- Posts: 42582
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 36 times
- Been thanked: 86 times
- Contact:
Antonio,
Gracias por darme una idea, pero ese método no hace lo deseado, aparte de que deja el botón deshabilitado.
A partir de esa idea, he creado 2 métodos que Sí hacen exactamente lo que buscaba y lo que hacía la antigua toolbar.
Espero que te guste la implementación.
#define TB_CHECKBUTTON (WM_USER + 2)
#define TBSTATE_CHECKED 0x01
#define TB_SETSTATE 1041
#define TBSTATE_ENABLED 4
#define TB_ISBUTTONCHECKED (WM_USER + 10)
METHOD SetChecked( nButton, lOnOff ) INLINE ;
If( lOnOff, ::SendMsg( TB_CHECKBUTTON, nButton, TBSTATE_CHECKED ),;
::SendMsg( TB_SETSTATE, nButton, TBSTATE_ENABLED ) )
METHOD IsChecked( nButton ) INLINE ;
if(::SendMsg( TB_ISBUTTONCHECKED, nButton, 0 )==0, .F., .T. )
Un Saludo,
Joaquín
Gracias por darme una idea, pero ese método no hace lo deseado, aparte de que deja el botón deshabilitado.
A partir de esa idea, he creado 2 métodos que Sí hacen exactamente lo que buscaba y lo que hacía la antigua toolbar.
Espero que te guste la implementación.
#define TB_CHECKBUTTON (WM_USER + 2)
#define TBSTATE_CHECKED 0x01
#define TB_SETSTATE 1041
#define TBSTATE_ENABLED 4
#define TB_ISBUTTONCHECKED (WM_USER + 10)
METHOD SetChecked( nButton, lOnOff ) INLINE ;
If( lOnOff, ::SendMsg( TB_CHECKBUTTON, nButton, TBSTATE_CHECKED ),;
::SendMsg( TB_SETSTATE, nButton, TBSTATE_ENABLED ) )
METHOD IsChecked( nButton ) INLINE ;
if(::SendMsg( TB_ISBUTTONCHECKED, nButton, 0 )==0, .F., .T. )
Un Saludo,
Joaquín
Antonio,
Si te ha parecido bien y vas a añadirlo a la clase, mira si sería posible este método también, lo veo bastante útil:
//----- Pone el estado de un botón de la manera inversa a la que está
METHOD lChekOnOff( nButton ) INLINE if( ::IsChecked( nButton ), ;
( ::SetChecked( nButton, .F. ),.F.),;
( ::SetChecked( nButton, .T. ),.T.) )
Un Saludo,
Joaquín
Si te ha parecido bien y vas a añadirlo a la clase, mira si sería posible este método también, lo veo bastante útil:
//----- Pone el estado de un botón de la manera inversa a la que está
METHOD lChekOnOff( nButton ) INLINE if( ::IsChecked( nButton ), ;
( ::SetChecked( nButton, .F. ),.F.),;
( ::SetChecked( nButton, .T. ),.T.) )
Un Saludo,
Joaquín
- Antonio Linares
- Site Admin
- Posts: 42582
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 36 times
- Been thanked: 86 times
- Contact:
- Antonio Linares
- Site Admin
- Posts: 42582
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 36 times
- Been thanked: 86 times
- Contact:
Antonio,
en el método
METHOD ToggleCheck( nButton ) INLINE ::SetCheck( nButton, ! ::IsChecked( nButton ) )
::SetCheck( nButton, ! ::IsChecked( nButton ) ) ¿que devuelve? porque se necesita que devuelva el estado en que queda el botón.
Que traducción tiene la palabra Toggle ¿Cambio de estado?
Un Saludo,
Joaquín
en el método
METHOD ToggleCheck( nButton ) INLINE ::SetCheck( nButton, ! ::IsChecked( nButton ) )
::SetCheck( nButton, ! ::IsChecked( nButton ) ) ¿que devuelve? porque se necesita que devuelva el estado en que queda el botón.
Que traducción tiene la palabra Toggle ¿Cambio de estado?
Un Saludo,
Joaquín
- Antonio Linares
- Site Admin
- Posts: 42582
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 36 times
- Been thanked: 86 times
- Contact:
Antonio,
es muy importante, si tengo una data que me indica un estado por ejemplo en mi caso ::lBold y la oToolbar es una variable local, que no uso en ninguna otra parte, en el action del botón pongo
::lBold := oToolbar:ToggleCheck( 1 ) // Por ejemplo
Por eso, te lo pasé de esa manera el INLINE, y así es como le veo más utilidad y no veo que repercuta en ninguna otra cosa.
Un Saludo,
Joaquín
es muy importante, si tengo una data que me indica un estado por ejemplo en mi caso ::lBold y la oToolbar es una variable local, que no uso en ninguna otra parte, en el action del botón pongo
::lBold := oToolbar:ToggleCheck( 1 ) // Por ejemplo
Por eso, te lo pasé de esa manera el INLINE, y así es como le veo más utilidad y no veo que repercuta en ninguna otra cosa.
Un Saludo,
Joaquín
- Antonio Linares
- Site Admin
- Posts: 42582
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 36 times
- Been thanked: 86 times
- Contact:
- Antonio Linares
- Site Admin
- Posts: 42582
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 36 times
- Been thanked: 86 times
- Contact: