Colores en RADIO no funciona?

Colores en RADIO no funciona?

Postby karinha » Sat Sep 26, 2020 5:04 pm

Buenas...

Colores en RADIO no funciona?

Code: Select all  Expand view  RUN

   REDEFINE RADIO oRadMenu VAR nOpcBuscaClie ID 201, 202, 203, 204, 205,     ;
      206 OF oDlgInd UPDATE

   // oRadMenu:aItems[3]:Disable()  // DESABILITA O RADIO
   oRadMenu:aItems[1]:cTooltip := "Cliente "
   oRadMenu:aItems[2]:cTooltip := "Código  "
   oRadMenu:aItems[3]:cTooltip := "Fantasia"
   oRadMenu:aItems[4]:cTooltip := "C.n.p.j."
   oRadMenu:aItems[5]:cTooltip := "C.p.f.  "
   oRadMenu:aItems[6]:cTooltip := "Endereço"

   // nao funciona - No Funciona - color in radio
   oRadMenu:aItems[1]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[2]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[3]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[4]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[5]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[6]:SetColor( CLR_CYAN, CLR_WHITE )

   oRadMenu:SetFont( oFnt )
 


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Colores en RADIO no funciona?

Postby jvtecheto » Sun Sep 27, 2020 7:24 pm

Tiene razon Joao

lo he comprobado y en REDEFINE no funciona.
sin embargo funciona si lo creas desde CODIGO .

Es raro que nadie se haya dado cuenta hasta ahora.

Saludos.

Jose.
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
User avatar
jvtecheto
 
Posts: 600
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Re: Colores en RADIO no funciona?

Postby Antonio Linares » Mon Sep 28, 2020 10:27 am

Joao,

Tienes que hacerlo desde la claúsula ON INIT del diálogo:

ACTIVATE DIALOG oDlgInd ON INIT ChangeColors( oRadMenu )

...

function ChangeColors( oRadMenu )

oRadMenu:aItems[1]:SetColor( CLR_CYAN, CLR_WHITE )
oRadMenu:aItems[2]:SetColor( CLR_CYAN, CLR_WHITE )
oRadMenu:aItems[3]:SetColor( CLR_CYAN, CLR_WHITE )
oRadMenu:aItems[4]:SetColor( CLR_CYAN, CLR_WHITE )
oRadMenu:aItems[5]:SetColor( CLR_CYAN, CLR_WHITE )
oRadMenu:aItems[6]:SetColor( CLR_CYAN, CLR_WHITE )

return .T.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42118
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Colores en RADIO no funciona?

Postby karinha » Mon Sep 28, 2020 11:15 am

Amado maestro no funciona. Pídale al súper equipo de FiveTech que vea esto con urgencia. El maestro Navarro necesita trabajar. jajajajajajajajajajajaja.

Muchas gracias y buen trabajo.

Code: Select all  Expand view  RUN

// Radio Buttons management sample - \samples\TESTRAD.PRG y TESTRAD.RC

#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oRadMenu, oBrush, oFont
   local nOption := 2
   local nDTxtColor := 192

   SET _3DLOOK ON

   DEFINE FONT oFont  NAME 'Arial' SIZE 0, -12

   DEFINE DIALOG oDlg RESOURCE "Radios"

   REDEFINE RADIO oRadMenu VAR nOption ID 110, 120, 130, 140, 150 OF oDlg ;
      ON CHANGE MsgBeep()

   AEval( oRadMenu:aItems, { | oRadMenu | oRadMenu:lTransparent := .T., ;
                               oRadMenu:SetFont( oFont ),               ;
                               oRadMenu:nClrText := nDTxtColor } )

   REDEFINE BUTTON ID 100 OF oDlg ACTION oRadMenu:GoNext() ;
      WHEN nOption == 3

   REDEFINE BUTTON ID 102 OF oDlg ACTION oRadMenu:GoPrev()

   ACTIVATE DIALOG oDlg CENTERED         ;
      ON INIT( ChangeColors( oRadMenu ), ;
                             oRadMenu:aItems[ 1 ]:SetText( "Hello" ) )

      // ON INIT oRadMenu:aItems[ 1 ]:SetText( "Hello" )

   SET _3DLOOK OFF

return nil

/*
Joao,

Tienes que hacerlo desde la claúsula ON INIT del diálogo:

ACTIVATE DIALOG oDlgInd ON INIT ChangeColors( oRadMenu )

...
*/


FUNCTION ChangeColors( oRadMenu )

   oRadMenu:aItems[1]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[2]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[3]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[4]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[5]:SetColor( CLR_CYAN, CLR_WHITE )

RETURN( .T. )

/*
regards, saludos

Antonio Linares
www.fivetechsoft.com
*/


//----------------------------------------------------------------------------//

procedure AppSys  // XBase++ requirement

return

//----------------------------------------------------------------------------//
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Colores en RADIO no funciona?

Postby cnavarro » Mon Sep 28, 2020 1:21 pm

Joao, pon el .RC que utilizas
Por cierto, tu ejecutable lo estás creando con el MANIFEST en el .RC o sin él?, prueba sin el MANIFEST en el RC
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Colores en RADIO no funciona?

Postby karinha » Mon Sep 28, 2020 1:33 pm

cnavarro wrote:Joao, pon el .RC que utilizas
Por cierto, tu ejecutable lo estás creando con el MANIFEST en el .RC o sin él?, prueba sin el MANIFEST en el RC


Maestro:

\samples\TESTRAD.PRG y TESTRAD.RC


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Colores en RADIO no funciona?

Postby karinha » Mon Sep 28, 2020 2:03 pm

Asi, funciona maestro Navarro.

Code: Select all  Expand view  RUN

// Radio Buttons management sample - \SAMPLES\TESTRAD.PRG

#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oRadMenu, oBrush, oFont
   local nOption := 2
   local nDTxtColor := 192

   SET _3DLOOK ON

   DEFINE FONT oFont  NAME 'Arial' SIZE 0, -12

   DEFINE DIALOG oDlg RESOURCE "Radios"

   REDEFINE RADIO oRadMenu VAR nOption ID 110, 120, 130, 140, 150 OF oDlg ;
      ON CHANGE MsgBeep()

   AEval( oRadMenu:aItems, { | oRadMenu | oRadMenu:lTransparent := .T., ;
                               oRadMenu:SetFont( oFont ),               ;
                               oRadMenu:nClrText := nDTxtColor } )

   REDEFINE BUTTON ID 100 OF oDlg ACTION oRadMenu:GoNext() ;
      WHEN nOption == 3

   REDEFINE BUTTON ID 102 OF oDlg ACTION oRadMenu:GoPrev()

   // Asi, funciona maestro Navarro.
   // By: Giovany Vecchi:
   // http://fivewin.com.br/index.php?/topic/ ... -funciona/
   ACTIVATE DIALOG oDlg CENTERED ON INIT( CTRLS_COLORS( oDlg ),              ;
                                     oRadMenu:aItems[ 1 ]:SetText( "Hello" ) )


      /* // no funciona
      ON INIT( ChangeColors( oRadMenu ), ;
                             oRadMenu:aItems[ 1 ]:SetText( "Hello" ) )
      */


      // ON INIT oRadMenu:aItems[ 1 ]:SetText( "Hello" )

   SET _3DLOOK OFF

return nil
// By: Giovany Vecchy. www.fivewin.com.br
FUNCTION CTRLS_COLORS( f_oDlgContainer )

   LOCAL lc_aCtrls := {}, lc_iFor := 0
   LOCAL lc_aItemsRadio := {}

   lc_aCtrls := f_oDlgContainer:aControls

   FOR lc_iFor := 1 TO Len( lc_aCtrls )

      IF ValType( lc_aCtrls[lc_iFor] ) == "O"

         IF lc_aCtrls[lc_iFor]:ClassName() == "TRADIO"

            aEval( lc_aCtrls[lc_iFor]:oRadMenu:aItems,                 ;
                   {|_oRadId|{ SetWindowTheme( _oRadId:hWnd, "", "" ), ;
                   _oRadId:SetColor( CLR_CYAN, CLR_WHITE ) } } )
                   
         ELSEIF lc_aCtrls[lc_iFor]:ClassName() == "TCHECKBOX"

            // SetWindowTheme( lc_aCtrls[lc_iFor]:hWnd, "", "" )

            // lc_aCtrls[lc_iFor]:SetColor( G_COLOR_SYS( 31 ), G_COLOR_SYS( 1 ) )

         ENDIF

      ENDIF

   NEXT

RETURN NIL

/*
Joao,

Tienes que hacerlo desde la claúsula ON INIT del diálogo:

ACTIVATE DIALOG oDlgInd ON INIT ChangeColors( oRadMenu )

...
*/


FUNCTION ChangeColors( oRadMenu )

   oRadMenu:aItems[1]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[2]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[3]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[4]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[5]:SetColor( CLR_CYAN, CLR_WHITE )

RETURN( .T. )

/*
regards, saludos

Antonio Linares
www.fivetechsoft.com
*/


//----------------------------------------------------------------------------//

procedure AppSys  // XBase++ requirement

return

//----------------------------------------------------------------------------//
 


Gracias,

Regards, Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Colores en RADIO no funciona?

Postby karinha » Mon Sep 28, 2020 2:40 pm

Asi, funciona maestro Navarro. Ahora, COMPLETO.

Code: Select all  Expand view  RUN

// Radio Buttons management sample - \SAMPLES\TESTRAD.PRG

#include "FiveWin.ch"
#include "Colores.ch"

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oRadMenu, oBrush, oFont
   local nOption := 2
   local nDTxtColor := 192

   SET _3DLOOK ON

   DEFINE FONT oFont  NAME 'Arial' SIZE 0, -12

   DEFINE DIALOG oDlg RESOURCE "Radios"

   REDEFINE RADIO oRadMenu VAR nOption ID 110, 120, 130, 140, 150 OF oDlg ;
      ON CHANGE MsgBeep()

   AEval( oRadMenu:aItems, { | oRadMenu | oRadMenu:lTransparent := .T., ;
                               oRadMenu:SetFont( oFont ),               ;
                               oRadMenu:nClrText := nDTxtColor } )

   REDEFINE BUTTON ID 100 OF oDlg ACTION oRadMenu:GoNext() ;
      WHEN nOption == 3

   REDEFINE BUTTON ID 102 OF oDlg ACTION oRadMenu:GoPrev()

   // Asi, funciona maestro Navarro.
   // By: Giovany Vecchi:
   // http://fivewin.com.br/index.php?/topic/ ... -funciona/
   ACTIVATE DIALOG oDlg CENTERED ON INIT( CTRLS_COLORS( oDlg ),              ;
                                     oRadMenu:aItems[ 1 ]:SetText( "Hello" ) )


      /* // no funciona
      ON INIT( ChangeColors( oRadMenu ), ;
                             oRadMenu:aItems[ 1 ]:SetText( "Hello" ) )
      */


      // ON INIT oRadMenu:aItems[ 1 ]:SetText( "Hello" )

   SET _3DLOOK OFF

return nil
// By: Giovany Vecchy. www.fivewin.com.br
FUNCTION CTRLS_COLORS( f_oDlgContainer )

   LOCAL lc_aCtrls := {}, lc_iFor := 0
   LOCAL lc_aItemsRadio := {}

   lc_aCtrls := f_oDlgContainer:aControls

   FOR lc_iFor := 1 TO Len( lc_aCtrls )

      IF ValType( lc_aCtrls[lc_iFor] ) == "O"

         IF lc_aCtrls[lc_iFor]:ClassName() == "TRADIO"

            aEval( lc_aCtrls[lc_iFor]:oRadMenu:aItems,                 ;
                   {|_oRadId|{ SetWindowTheme( _oRadId:hWnd, "", "" ), ;
                   _oRadId:SetColor( CLR_CYAN, CLR_WHITE ) } } )
                   
         ELSEIF lc_aCtrls[lc_iFor]:ClassName() == "TCHECKBOX"

            SetWindowTheme( lc_aCtrls[lc_iFor]:hWnd, "", "" )

            lc_aCtrls[lc_iFor]:SetColor( G_COLOR_SYS( 31 ), G_COLOR_SYS( 1 ) )

         ENDIF

      ENDIF

   NEXT

RETURN NIL

/*
Joao,

Tienes que hacerlo desde la claúsula ON INIT del diálogo:

ACTIVATE DIALOG oDlgInd ON INIT ChangeColors( oRadMenu )

...
*/


FUNCTION ChangeColors( oRadMenu )

   oRadMenu:aItems[1]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[2]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[3]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[4]:SetColor( CLR_CYAN, CLR_WHITE )
   oRadMenu:aItems[5]:SetColor( CLR_CYAN, CLR_WHITE )

RETURN( .T. )

/*
regards, saludos

Antonio Linares
www.fivetechsoft.com
*/


//----------------------------------------------------------------------------//

procedure AppSys  // XBase++ requirement

return

//----------------------------------------------------------------------------//

FUNCTION G_COLOR_SYS( f_nTpObj )

   LOCAL cColorRet := nRgb( 0, 0, 0 )
   LOCAL nColorFundo := nRgb( 255, 255, 255 ),        ;
         nColorStaticText := nRgb( 255, 255, 255 ),   ;
         nColorTxtBtnNormal := nRgb( 255, 255, 255 ), ;
         nColorTxtBtnOver := nRgb( 255, 255, 255 ) ,  ;
         nColorTxtBtnDisable := CLR_CYAN
   LOCAL nColorTxtRadioCheckBox := CLR_WHITE
   LOCAL nTheme := 1

   DEFAULT f_nTpObj := 1 // 1-Fundo

   // 2-Static Text
   // 3-Say Text caracter
   // 4-Say Fundo

   IF nTheme == 1 // escuro medio

      nColorFundo := nRgb( 111, 141, 160 ) // ta usando 01

      // nColorFundo := nRgb(45,54,76) // ta usando
      // nColorFundo := CLR_VSTIT

      nColorStaticText    := nRgb( 255, 255, 255 ) // 02
      nColorTxtBtnNormal  := nRgb( 255, 255, 255 )
      nColorTxtBtnOver := CLR_WHITE //nRgb(255,255,255)
      nColorTxtBtnDisable := CLR_HGRAY
      nColorTxtRadioCheckBox := METRO_AZUL6

   ELSEIF nTheme == 2 // windows 10 2019

      nColorFundo := CLR_VSWIN
      nColorStaticText := nRgb( 0, 0, 0 )
      nColorTxtBtnNormal := nRgb( 0, 0, 0 )
      nColorTxtBtnOver := nRgb( 0, 0, 0 )
      nColorTxtBtnDisable := CLR_CYAN
      nColorTxtRadioCheckBox := METRO_AZUL6

   ENDIF

   IF f_nTpObj == 1 // Fundo

      cColorRet := nRgb( 121, 151, 170 ) // ta usando

      // cColorRet := nRgb(53,63,89) // Avast 01
      // cColorRet := nRgb(45,54,76) // Avast 02

      cColorRet := nColorFundo

   ELSEIF f_nTpObj == 2 // Static Text

      cColorRet := nColorStaticText // nRgb(255,255,255)

   ELSEIF f_nTpObj == 3 // Say Text caracter

      cColorRet := nRgb( 0, 0, 0 )

   ELSEIF f_nTpObj == 4 // Say Fundo

      cColorRet := METRO_AZUL14 ///nRgb(0,0,0)

   ELSEIF f_nTpObj == 10 // Buttom Fundo normal

      cColorRet := { { 100,nColorFundo,nColorFundo } } //nRgb(121,151,170) // Este é igual o fundo de tela

      // cColorRet := {{0.3,nRgb(05,05,05),nRgb(71,71,71)},;
      // {0.7,nRgb(61,61,61),nRgb(0,0,0)} }

   ELSEIF f_nTpObj == 11 // Buttom Fundo Over mouse

      cColorRet := { { 100,SetBrightColor( nColorFundo,18 ),;

      SetBrightColor( nColorFundo, 18 ) } } //nRgb(121,151,170) // Este é igual o fundo de tela

   ELSEIF f_nTpObj == 12 // Buttom Fundo disable

      cColorRet := { { 100,nColorFundo,nColorFundo } } //nRgb(121,151,170) // Este é igual o fundo de tela

   ELSEIF f_nTpObj == 13 // Buttom Texto Normal

      cColorRet := nColorTxtBtnNormal

   ELSEIF f_nTpObj == 14 // Buttom Texto OVER

      cColorRet := nColorTxtBtnOver

   ELSEIF f_nTpObj == 15 // Buttom Texto Disable

      cColorRet := nColorTxtBtnDisable

   ELSEIF f_nTpObj == 16 // Buttom Border Normal

      cColorRet := nColorTxtBtnNormal //nRgb(255,255,255)

   ELSEIF f_nTpObj == 17 // Buttom Border over

      cColorRet := nColorTxtBtnOver //nRgb(255,255,255)

   ELSEIF f_nTpObj == 31 // Radio ou CheckBox

      cColorRet := nColorTxtRadioCheckBox

   ENDIF

RETURN cColorRet

FUNCTION SetBrightColor( f_nColorRgb, f_nPercent )

   LOCAL nColorRgbReturn := 0
   LOCAL nRgbRed, nRgbGreen, nRgbBlue

   nRgbRed := nRgbRed( f_nColorRgb )
   nRgbGreen := nRgbGreen( f_nColorRgb )
   nRgbBlue := nRgbBlue( f_nColorRgb )

   IF nRgbRed > 0
      nRgbRed := Int( nRgbRed + ( (nRgbRed/100 ) * f_nPercent ) )
      IF nRgbRed > 255
         nRgbRed := 255
      ENDIF
   ENDIF

   IF nRgbGreen > 0
      nRgbGreen := Int( nRgbGreen + ( (nRgbGreen/100 ) * f_nPercent ) )
      IF nRgbGreen > 255
         nRgbGreen := 255
      ENDIF
   ENDIF

   IF nRgbBlue > 0
      nRgbBlue := Int( nRgbBlue + ( (nRgbBlue/100 ) * f_nPercent ) )
      IF nRgbBlue > 255
         nRgbBlue := 255
      ENDIF
   ENDIF

   nColorRgbReturn := nRgb( nRgbRed, nRgbGreen, nRgbBlue )

RETURN nColorRgbReturn

// Muchas gracias, many thanks, obrigado, Giovany Vecchi. www.fivewin.com.br
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Verhoven and 51 guests