RBBTN desde código

RBBTN desde código

Postby MarioG » Mon Mar 14, 2011 2:19 pm

Estimados;
Tengo un dialogo al que le agregué 2 RBBTN, además el dialog tiene un Combobox y un GET (todo desde codigo).
Lo que me ocurre es que al pulsar Tab (o Intro), el foco solo cambia entre el Combo y el Get. O sea no pasa por los RBBTN.
Como hago para que de foco a los botones, según corresponda?
El código
Code: Select all  Expand view  RUN
  DEFINE FONT aO[_Fnt] NAME "MS San Serif" SIZE -0,18 BOLD
   DEFINE ICON aO[_Ico] RESOURCE "ico_Conectar"
   DEFINE DIALOG oDlg FROM 0,0 TO 165,405 PIXEL TITLE "Control de Acceso" ;
          STYLE  nOr( WS_POPUP, WS_VISIBLE, WS_BORDER, WS_THICKFRAME, 4 ) ;
          ICON   aO[_Ico]

   @ 2,3  GBOX PROMPT " Acceso de Usuarios " SIZE 198,78 ALIGN DT_RIGHT OF oDlg ;
          PIXEL COLORS CLR_WHITE, CLR_HBLUE, CLR_HBLUE  ROUNDED

   @ 14,7 GBOX SIZE 41,47 OF oDlg PIXEL COLORS CLR_GRAY, CLR_WHITE // Box del Logo
   @ 15,7 BITMAP aO[_Bmp] RESOURCE "bmp_Acceso" NOBORDER SIZE 39,45 OF oDlg PIXEL
   aO[_Bmp]:lTransparent:= .T.

   @ 18, 52 SAY "Nombre/Alias:" SIZE 45, 10 PIXEL OF oDlg RIGHT
   @ 17, 99 COMBOBOX aO[_Cmb] VAR cUser ITEMS ::aLstUser OF oDlg UPDATE ;
            STYLE CBS_DROPDOWNLIST ;
            SIZE 60,100 PIXEL   ;
            COLOR CLR_HBLUE, CLR_WHITE ;
            ON CHANGE ( oSelf:nPosU    := aO[_Cmb]:nAt, ;
                        oSelf:cHostName:= AllTrim( oSelf:aUsers[oSelf:nPosU,_Host] ), ;
                        oSelf:cDataBase:= Alltrim( oSelf:aUsers[oSelf:nPosU,_DB] )  , ;
                        oSelf:cUser    := Alltrim( aO[_Cmb]:VarGet() )              , ;
                        oSelf:nPuerto  := oSelf:aUsers[oSelf:nPosU,_Puerto] )

   // Configurar
   @ 12,176 RBBTN PROMPT "" SIZE 18,18 OF oDlg ;
            BITMAP   "bmp_Config" CENTER ;
            TOOLTIP  "Configurar Acceso" ;
            GRADIANT { { 1/3, CLR_GRAD1, CLR_GRAD2 }, ;
                       { 2/3, CLR_GRAD3, CLR_GRAD4 } } ;
            ACTION   ...

   @ 46, 52 SAY "Clave de Acceso:" SIZE 45, 10 PIXEL OF oDlg RIGHT
   @ 45, 99 BTNGET aO[_Get1] VAR cPassW SIZE 42,10 PIXEL PASSWORD OF oDlg

   @ 41,145 RBBTN aO[_Btn1] PROMPT "&Conectar" SIZE 50,18 MOSTRIGHT OF oDlg ;
            BITMAP "bmp_Conectar" ;
            TOOLTIP  "Conectar con Base de Datos" ;
            GRADIANT { { 1/3, CLR_GRAD1, CLR_GRAD2 }, ;
                       { 2/3, CLR_GRAD3, CLR_GRAD4 } } ;
            ACTION   ...

   ACTIVATE DIALOG oDlg CENTER ON INIT ( aO[_Get1]:Setfocus(), FALSE )
 

muchas gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: RBBTN desde código

Postby MarioG » Tue Mar 15, 2011 9:36 pm

Sin respuesta?
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: RBBTN desde código

Postby Daniel Garcia-Gil » Tue Mar 15, 2011 10:20 pm

Mario...

puedes publicar un ejemplo que podamos construir...

te recomiendo leas este post: http://forums.fivetechsupport.com/viewtopic.php?p=103821#p103821
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: RBBTN desde código

Postby MarioG » Tue Mar 15, 2011 11:49 pm

Daniel;
ok; gracias por responder
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: RBBTN desde código

Postby MarioG » Wed Mar 16, 2011 1:39 pm

Daniel;
el sample:
Code: Select all  Expand view  RUN
#include "FiveWin.ch"
#include "Ribbon.ch"

#define CLR_GRAD1    nRGB( 236, 245, 255 )    // Gradiente de Boton
#define CLR_GRAD2    nRGB( 185, 218, 255 )
#define CLR_GRAD3    nRGB( 159, 207, 255 )
#define CLR_GRAD4    nRGB(   0, 111, 221 )

#define _Cmb2_1  1
#define _Get2_2  2
#define _Btn2_1  3

procedure Main()
local oDlg, ;
      aO[_Btn2_1], ;
      aLstUser:= {"mario", "rolando", "gonzalez" }, ;
      cUser:= "mario", ;
      cHost:= "localhost"+Space(20), ;
      cDB  := "midb"+Space(20), ;
      nPuerto:= 3306, ;
      nRow := 9


   DEFINE DIALOG oDlg TITLE "Configurar Acceso" ;
          STYLE nOr( WS_POPUP, WS_VISIBLE, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, 4 ) ;
          SIZE  370, 200 PIXEL
   oDlg:lHelpIcon:= FALSE

   @ nRow+1,8  SAY "Nombre/Alias:" SIZE 45, 10 PIXEL OF oDlg RIGHT
   @ nRow,  55 COMBOBOX aO[_Cmb2_1] VAR cUser ITEMS aLstUser OF oDlg UPDATE ;
            STYLE CBS_DROPDOWN ;          // Porque se agregan users a la lista
            SIZE 64,100 PIXEL  ;
            COLOR CLR_HBLUE, CLR_WHITE

   @ nRow+14,8  SAY "Host Address:"  OF oDlg SIZE 45,10 PIXEL RIGHT
   @ nRow+13,55 GET cHost PICTURE "@;S50" OF oDlg SIZE 100,10 PIXEL UPDATE ;
                VALID {|o| !Empty( o:VarGet() ) }
   @ nRow+27,8  SAY "DataBase:"      OF oDlg SIZE 45,10 PIXEL RIGHT
   @ nRow+26,55 GET cDB              OF oDlg SIZE 80,10 PIXEL  UPDATE ;
                VALID {|o| !Empty( o:VarGet() ) }
   @ nRow+40,8  SAY "Puerto:"        OF oDlg SIZE 45,10 PIXEL RIGHT
   @ nRow+39,55 GET aO[_Get2_2]  VAR nPuerto OF oDlg SIZE 15,10 PIXEL UPDATE ;
                    SPINNER ;
                    ON UP   ( ++nPuerto, aO[_Get2_2]:Refresh() ) ;
                    ON DOWN ( --nPuerto, aO[_Get2_2]:Refresh() )

   @nRow+57,18 SAY "Altere estos valores solo si está seguro del dato que modificará" OF oDlg ;
               SIZE 220,10 PIXEL COLOR CLR_HRED
   @nRow+70,45 RBBTN aO[_Btn2_1] PROMPT "&Aceptar" SIZE 40,15 OF oDlg ;
               TOOLTIP  "Configurar Acceso" ;
               GRADIANT { { 1/3, CLR_GRAD1, CLR_GRAD2 }, ;
                          { 2/3, CLR_GRAD3, CLR_GRAD4 } } ;
               ACTION  wqout({"Conectar"})

   @ nRow+70,100 RBBTN PROMPT "&Cancelar" SIZE 40,15 OF oDlg ;
                 TOOLTIP  "Configurar Acceso" ;
                 GRADIANT { { 1/3, CLR_GRAD1, CLR_GRAD2 }, ;
                            { 2/3, CLR_GRAD3, CLR_GRAD4 } } ;
                 ACTION  ""

   ACTIVATE DIALOG oDlg CENTER
 
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: RBBTN desde código

Postby Daniel Garcia-Gil » Wed Mar 16, 2011 2:48 pm

Mario


aqui esta tu solucion... (cuando se tiene un ejemplo para reproducir el error es MUCHO mas facil ayudar)

como la clase TRBTN fue diseñada para uso de la ribbonbar y se le dio una caracteristica adicional de poderla usar fuera de ella, no cuenta con la opcion por default de usar el TABSTOP... existe la clase BtnBmp ( que puedes tarnsformar con los mismo colores de la TRBTN ), buttonbmp y button con esas caracteristicas....

debemos agregarselo manualmente...

si cuentas con una version superior a 10.2 de fivewin esta funcion (__ChangeStyleWindow) ya esta incluida... expuesta generosamente por Hernan Diego Ceccarelli

al traterse de un dialogo hay que hacerlo en ON INIT... (atencion que agrege aO[_Btn2_2])
y por seguir tratandose de un dialogo y los maravillosos de programadores del API de Windows, nos ofrecen formas distintas de trabajar los dialogos y ventanas, estos procesan sus mensajes de forma diferente el uno del otro por tal motivo hay que agregar esto tambien....

Code: Select all  Expand view  RUN
nDlgCode  = DLGC_WANTALLKEYS


junto quedaria asi

Code: Select all  Expand view  RUN

   aO[_Btn2_1]:nDlgCode  = DLGC_WANTALLKEYS
   aO[_Btn2_2]:nDlgCode  = DLGC_WANTALLKEYS

   ACTIVATE DIALOG oDlg CENTER ;
            ON INIT (  __ChangeStyleWindow( aO[_Btn2_1]:hWnd, WS_TABSTOP ),;
                       __ChangeStyleWindow( aO[_Btn2_2]:hWnd, WS_TABSTOP ) )


el ejemplo completo
Code: Select all  Expand view  RUN

#include "FiveWin.ch"
#include "Ribbon.ch"

#define CLR_GRAD1    nRGB( 236, 245, 255 )    // Gradiente de Boton
#define CLR_GRAD2    nRGB( 185, 218, 255 )
#define CLR_GRAD3    nRGB( 159, 207, 255 )
#define CLR_GRAD4    nRGB(   0, 111, 221 )

#define _Cmb2_1  1
#define _Get2_2  2
#define _Btn2_1  3
#define _Btn2_2  4

#define FALSE .f.
#define TRUE .t.

procedure Main()
local oDlg, ;
      aO[_Btn2_2], ;
      aLstUser:= {"mario", "rolando", "gonzalez" }, ;
      cUser:= "mario", ;
      cHost:= "localhost"+Space(20), ;
      cDB  := "midb"+Space(20), ;
      nPuerto:= 3306, ;
      nRow := 9


   DEFINE DIALOG oDlg TITLE "Configurar Acceso" ;
          STYLE nOr( WS_POPUP, WS_VISIBLE, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, 4 ) ;
          SIZE  370, 200 PIXEL
   oDlg:lHelpIcon:= FALSE

   @ nRow+1,8  SAY "Nombre/Alias:" SIZE 45, 10 PIXEL OF oDlg RIGHT
   @ nRow,  55 COMBOBOX aO[_Cmb2_1] VAR cUser ITEMS aLstUser OF oDlg UPDATE ;
            STYLE CBS_DROPDOWN ;          // Porque se agregan users a la lista
            SIZE 64,100 PIXEL  ;
            COLOR CLR_HBLUE, CLR_WHITE

   @ nRow+14,8  SAY "Host Address:"  OF oDlg SIZE 45,10 PIXEL RIGHT
   @ nRow+13,55 GET cHost PICTURE "@;S50" OF oDlg SIZE 100,10 PIXEL UPDATE ;
                VALID {|o| !Empty( o:VarGet() ) }
   @ nRow+27,8  SAY "DataBase:"      OF oDlg SIZE 45,10 PIXEL RIGHT
   @ nRow+26,55 GET cDB              OF oDlg SIZE 80,10 PIXEL  UPDATE ;
                VALID {|o| !Empty( o:VarGet() ) }
   @ nRow+40,8  SAY "Puerto:"        OF oDlg SIZE 45,10 PIXEL RIGHT
   @ nRow+39,55 GET aO[_Get2_2]  VAR nPuerto OF oDlg SIZE 15,10 PIXEL UPDATE ;
                    SPINNER ;
                    ON UP   ( ++nPuerto, aO[_Get2_2]:Refresh() ) ;
                    ON DOWN ( --nPuerto, aO[_Get2_2]:Refresh() )

   @nRow+57,18 SAY "Altere estos valores solo si está seguro del dato que modificará" OF oDlg ;
               SIZE 220,10 PIXEL COLOR CLR_HRED
   @nRow+70,45 RBBTN aO[_Btn2_1] PROMPT "&Aceptar" SIZE 40,15 OF oDlg ;
               TOOLTIP  "Configurar Acceso" ;
               GRADIANT { { 1/3, CLR_GRAD1, CLR_GRAD2 }, ;
                          { 2/3, CLR_GRAD3, CLR_GRAD4 } } ;
               ACTION  wqout({"Conectar"})

   @ nRow+70,100 RBBTN aO[_Btn2_2] PROMPT "&Cancelar" SIZE 40,15 OF oDlg ;
                 TOOLTIP  "Configurar Acceso" ;
                 GRADIANT { { 1/3, CLR_GRAD1, CLR_GRAD2 }, ;
                            { 2/3, CLR_GRAD3, CLR_GRAD4 } } ;
                 ACTION  ""

   aO[_Btn2_1]:nDlgCode  = DLGC_WANTALLKEYS
   aO[_Btn2_2]:nDlgCode  = DLGC_WANTALLKEYS

   ACTIVATE DIALOG oDlg CENTER ;
            ON INIT (  __ChangeStyleWindow( aO[_Btn2_1]:hWnd, WS_TABSTOP ),;
                       __ChangeStyleWindow( aO[_Btn2_2]:hWnd, WS_TABSTOP ) )
 
 
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: RBBTN desde código

Postby MarioG » Wed Mar 16, 2011 3:38 pm

Daniel
gracias por tu tiempo
Ahora, faltaría algo mas, que muestre cuando tiene el foco... aunque supongo que ya es otro tema.
Por lo que, serias amable en ampliarme como conseguir el mismo efecto, del degradado, mediante BTNBMP?

existe la clase BtnBmp ( que puedes tarnsformar con los mismo colores de la TRBTN ), buttonbmp y button con esas caracteristicas....
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: RBBTN desde código

Postby Daniel Garcia-Gil » Wed Mar 16, 2011 7:42 pm

ejemplo usando BTNBMP
Code: Select all  Expand view  RUN


#include "FiveWin.ch"
#include "Ribbon.ch"

#define CLR_GRAD1    nRGB( 236, 245, 255 )    // Gradiente de Boton
#define CLR_GRAD2    nRGB( 185, 218, 255 )
#define CLR_GRAD3    nRGB( 159, 207, 255 )
#define CLR_GRAD4    nRGB(   0, 111, 221 )

#define _Cmb2_1  1
#define _Get2_2  2
#define _Btn2_1  3
#define _Btn2_2  4

#define FALSE .f.
#define TRUE .t.

procedure Main()
local oDlg, ;
      aO[_Btn2_2], ;
      aLstUser:= {"mario", "rolando", "gonzalez" }, ;
      cUser:= "mario", ;
      cHost:= "localhost"+Space(20), ;
      cDB  := "midb"+Space(20), ;
      nPuerto:= 3306, ;
      nRow := 9


   DEFINE DIALOG oDlg TITLE "Configurar Acceso" ;
          STYLE nOr( WS_POPUP, WS_VISIBLE, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, 4 ) ;
          SIZE  370, 200 PIXEL
   oDlg:lHelpIcon:= FALSE
   
   oDlg:bClrGrad =    { | lInvert | If( lInvert, ;
      { { 1/3, nRGB( 255, 253, 222 ), nRGB( 255, 231, 151 ) }, ;
        { 2/3, nRGB( 255, 215,  84 ), nRGB( 255, 233, 162 ) }  ;
      }, ;
      { { 1/3, CLR_GRAD1, CLR_GRAD2 }, ;
        { 2/3, CLR_GRAD3, CLR_GRAD4 } } ) }

                                 

   @ nRow+1,8  SAY "Nombre/Alias:" SIZE 45, 10 PIXEL OF oDlg RIGHT
   @ nRow,  55 COMBOBOX aO[_Cmb2_1] VAR cUser ITEMS aLstUser OF oDlg UPDATE ;
            STYLE CBS_DROPDOWN ;          // Porque se agregan users a la lista
            SIZE 64,100 PIXEL  ;
            COLOR CLR_HBLUE, CLR_WHITE

   @ nRow+14,8  SAY "Host Address:"  OF oDlg SIZE 45,10 PIXEL RIGHT
   @ nRow+13,55 GET cHost PICTURE "@;S50" OF oDlg SIZE 100,10 PIXEL UPDATE ;
                VALID {|o| !Empty( o:VarGet() ) }
   @ nRow+27,8  SAY "DataBase:"      OF oDlg SIZE 45,10 PIXEL RIGHT
   @ nRow+26,55 GET cDB              OF oDlg SIZE 80,10 PIXEL  UPDATE ;
                VALID {|o| !Empty( o:VarGet() ) }
   @ nRow+40,8  SAY "Puerto:"        OF oDlg SIZE 45,10 PIXEL RIGHT
   @ nRow+39,55 GET aO[_Get2_2]  VAR nPuerto OF oDlg SIZE 15,10 PIXEL UPDATE ;
                    SPINNER ;
                    ON UP   ( ++nPuerto, aO[_Get2_2]:Refresh() ) ;
                    ON DOWN ( --nPuerto, aO[_Get2_2]:Refresh() )

   @nRow+57,18 SAY "Altere estos valores solo si está seguro del dato que modificará" OF oDlg ;
               SIZE 220,10 PIXEL COLOR CLR_HRED
   @nRow+70,45 BTNBMP aO[_Btn2_1] PROMPT "&Aceptar" SIZE 40,15 OF oDlg 2007 ;
               TOOLTIP  "Configurar Acceso" ;
               ACTION  wqout({"Conectar"})

   @ nRow+70,100 BTNBMP aO[_Btn2_2] PROMPT "&Cancelar" SIZE 40,15 OF oDlg 2007 ;
                 TOOLTIP  "Configurar Acceso";
                 ACTION  ""

   aO[_Btn2_1]:nDlgCode  = DLGC_WANTALLKEYS
   aO[_Btn2_2]:nDlgCode  = DLGC_WANTALLKEYS

   ACTIVATE DIALOG oDlg CENTER/* ;
            ON INIT (  __ChangeStyleWindow( aO[_Btn2_1]:hWnd, WS_TABSTOP ),;
                       __ChangeStyleWindow( aO[_Btn2_2]:hWnd, WS_TABSTOP ) )*/

 
 
 
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: RBBTN desde código

Postby Daniel Garcia-Gil » Wed Mar 16, 2011 8:05 pm

Ejemplo usando RBTN y simulando el get/lost focus
Code: Select all  Expand view  RUN


#include "FiveWin.ch"
#include "Ribbon.ch"

#define CLR_GRAD1    nRGB( 236, 245, 255 )    // Gradiente de Boton
#define CLR_GRAD2    nRGB( 185, 218, 255 )
#define CLR_GRAD3    nRGB( 159, 207, 255 )
#define CLR_GRAD4    nRGB(   0, 111, 221 )

#define _Cmb2_1  1
#define _Get2_2  2
#define _Btn2_1  3
#define _Btn2_2  4

#define FALSE .f.
#define TRUE .t.

procedure Main()
local oDlg, ;
      aO[_Btn2_2], ;
      aLstUser:= {"mario", "rolando", "gonzalez" }, ;
      cUser:= "mario", ;
      cHost:= "localhost"+Space(20), ;
      cDB  := "midb"+Space(20), ;
      nPuerto:= 3306, ;
      nRow := 9


   DEFINE DIALOG oDlg TITLE "Configurar Acceso" ;
          STYLE nOr( WS_POPUP, WS_VISIBLE, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, 4 ) ;
          SIZE  370, 200 PIXEL
   oDlg:lHelpIcon:= FALSE

   @ nRow+1,8  SAY "Nombre/Alias:" SIZE 45, 10 PIXEL OF oDlg RIGHT
   @ nRow,  55 COMBOBOX aO[_Cmb2_1] VAR cUser ITEMS aLstUser OF oDlg UPDATE ;
            STYLE CBS_DROPDOWN ;          // Porque se agregan users a la lista
            SIZE 64,100 PIXEL  ;
            COLOR CLR_HBLUE, CLR_WHITE

   @ nRow+14,8  SAY "Host Address:"  OF oDlg SIZE 45,10 PIXEL RIGHT
   @ nRow+13,55 GET cHost PICTURE "@;S50" OF oDlg SIZE 100,10 PIXEL UPDATE ;
                VALID {|o| !Empty( o:VarGet() ) }
   @ nRow+27,8  SAY "DataBase:"      OF oDlg SIZE 45,10 PIXEL RIGHT
   @ nRow+26,55 GET cDB              OF oDlg SIZE 80,10 PIXEL  UPDATE ;
                VALID {|o| !Empty( o:VarGet() ) }
   @ nRow+40,8  SAY "Puerto:"        OF oDlg SIZE 45,10 PIXEL RIGHT
   @ nRow+39,55 GET aO[_Get2_2]  VAR nPuerto OF oDlg SIZE 15,10 PIXEL UPDATE ;
                    SPINNER ;
                    ON UP   ( ++nPuerto, aO[_Get2_2]:Refresh() ) ;
                    ON DOWN ( --nPuerto, aO[_Get2_2]:Refresh() )

   @nRow+57,18 SAY "Altere estos valores solo si está seguro del dato que modificará" OF oDlg ;
               SIZE 220,10 PIXEL COLOR CLR_HRED
   @nRow+70,45 RBBTN aO[_Btn2_1] PROMPT "&Aceptar" SIZE 40,11 OF oDlg ;
               TOOLTIP  "Configurar Acceso" ;
               BORDER ROUND RSIZE 2 ;
               GRADIANT { { 1/3, CLR_GRAD1, CLR_GRAD2 }, ;
                          { 2/3, CLR_GRAD3, CLR_GRAD4 } } ;
               ACTION  wqout({"Conectar"})

   @ nRow+70,100 RBBTN aO[_Btn2_2] PROMPT "&Cancelar" SIZE 40,11 OF oDlg ;
                 TOOLTIP  "Configurar Acceso" ;
                 BORDER ROUND RSIZE 2 ;
                 GRADIANT { { 1/3, CLR_GRAD1, CLR_GRAD2 }, ;
                            { 2/3, CLR_GRAD3, CLR_GRAD4 } } ;
                 ACTION  ""

   aO[_Btn2_1]:nDlgCode  = DLGC_WANTALLKEYS
   aO[_Btn2_2]:nDlgCode  = DLGC_WANTALLKEYS
   

   aO[_Btn2_1]:bGotFocus  = btnGotFocus( aO[_Btn2_1] )                                                          
   aO[_Btn2_1]:bLostFocus = btnLostFocus( aO[_Btn2_1] )
   aO[_Btn2_2]:bGotFocus  = btnGotFocus( aO[_Btn2_2] )                                                          
   aO[_Btn2_2]:bLostFocus = btnLostFocus( aO[_Btn2_2] )                            

   ACTIVATE DIALOG oDlg CENTER ;
            ON INIT (  __ChangeStyleWindow( aO[_Btn2_1]:hWnd, WS_TABSTOP ),;
                       __ChangeStyleWindow( aO[_Btn2_2]:hWnd, WS_TABSTOP ) )
 
 
 FUNCTION btnGotFocus( o )
 return {|| o:aGradiant :=  { { 1/3, nRGB( 255, 253, 222 ), nRGB( 255, 231, 151 ) }, ;
                              { 2/3, nRGB( 255, 215,  84 ), nRGB( 255, 233, 162 ) } },;
                                DeleteObject( o:hBack ),;
                                o:hBack := NIL,;
                                o:Refresh() }
                               
 FUNCTION btnLostFocus( o )
 return {|| o:aGradiant := { { 1/3, CLR_GRAD1, CLR_GRAD2 }, ;
                              { 2/3, CLR_GRAD3, CLR_GRAD4 } },;
                                DeleteObject( o:hBack ),;
                                o:hBack := NIL,;
                                o:Refresh() }                                

 
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: RBBTN desde código

Postby MarioG » Thu Mar 17, 2011 12:08 pm

Daniel;
IM-PRE-SIO-NAN-TE ! :)
Se puede dar por cerrrado el tema

muchas gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 38 guests