Page 1 of 1

Cómo dar color al Texto de CheckBox y Group Box?

Posted: Wed Jul 17, 2019 4:43 pm
by Armando
Foreros:

Pues eso, necesito cambiar el color del texto a Check Box y Group Box.

Algún ejemplo?

Saludos

Re: Cómo dar color al Texto de CheckBox y Group Box?

Posted: Wed Jul 17, 2019 7:36 pm
by AngelSalom
Por aquí se habla del tema : http://fivetechsupport.com/forums/viewt ... 3d3a01edf7

El último mensaje del hilo parece ser que conduce a una solución para aquél entonces, que suponía inhabilitar la funcion isAppThemed()

Re: Cómo dar color al Texto de CheckBox y Group Box?

Posted: Wed Jul 17, 2019 8:51 pm
by Armando
Ángel:

Gracias por la aclaración, pues parece que aun no hay una solución
viable a este problema. Tal vez Antonio pueda meterle mano a las
clases?.

Saludos

Re: Cómo dar color al Texto de CheckBox y Group Box?

Posted: Thu Jul 18, 2019 1:37 pm
by karinha
Image

Re: Cómo dar color al Texto de CheckBox y Group Box?

Posted: Thu Jul 18, 2019 1:40 pm
by karinha

Code: Select all

// Button< Reset > uses TESTCOLOR( oDlg, nBColor1, nTxtColor1 ) // RED = 255, WHITE = 16777215
// Button< Color > uses TESTCOLOR( oDlg, nBColor2, nTxtColor2 ) // BLUE = 16711680, YELLOW = 65535

#include "fivewin.ch"

FUNCTION MAIN()

   LOCAL oDlg, oBrush, oFont[3], oBtn[3], oGet[3], aX[3], c_Path, c_Path1
   LOCAL nBColor1 := 255, nTxtColor1  := 16777215
   LOCAL nBColor2 := 16711680, nTxtColor2  := 65535
   LOCAL oSay1, cSay1 := "Test SAY-color", oRadio1, nRadio1 := 1, oCheck1, lCheck1 := .T.

   c_path := cFilePath( GetModuleFileName( GetInstance() ) )
   c_path1 := c_path + "BITMAPS\"

   aX[1] := 1
   aX[2] := 2
   aX[3] := 3

   DEFINE FONT oFont[1] NAME "Tahoma" SIZE 0, - 12 BOLD
   DEFINE FONT oFont[2] NAME "Tahoma" SIZE 0, - 14 BOLD
   DEFINE FONT oFont[3] NAME "Tahoma" SIZE 0, - 16 BOLD

   DEFINE BRUSH oBrush COLOR 16765090

   DEFINE DIALOG oDlg SIZE 300, 220 ;
      FONT  oFont[1] TITLE "Set colors from class-name"

   @ 10, 10 GET oGet[1]  VAR aX[1] SIZE 10, 12 OF oDlg  PICT "9" PIXEL RIGHT ;
      FONT oFont[1] UPDATE

   @ 28, 10 GET oGet[2]  VAR aX[2] SIZE 12, 14 OF oDlg  PICT "9" PIXEL RIGHT ;
      FONT oFont[2] UPDATE

   @ 48, 10 GET oGet[3]  VAR aX[3] SIZE 14, 16 OF oDlg  PICT "9" PIXEL RIGHT ;
      FONT oFont[3] UPDATE

   @ 70, 10 SAY oSay1    VAR cSay1 SIZE 80, 12 OF oDlg  PIXEL FONT oFont[3]  ;
      UPDATE

   @ 10, 40 RADIO oRadio1 VAR nRadio1 ITEMS "One", "Two", "Three" _3D        ;
      SIZE 40, 15 PIXEL UPDATE HELPID 100, 101, 102

   oRadio1:SetFont( oFont[2] )

   @ 10, 90 CHECKBOX oCheck1 VAR lCheck1 PROMPT "&Checkbox" SIZE 50, 12 OF oDlg PIXEL FONT oFont[3] UPDATE

   @ 90, 10 BTNBMP oBtn[1] OF oDlg ;
      SIZE 40, 15 PIXEL 2007 ;
      NOBORDER ;
      PROMPT "&Reset" ;
      FILENAME c_path1 + "Reset.Bmp" ;
      ACTION TESTCOLOR( oDlg, nBColor1, nTxtColor1 ) ;
      FONT oFont[1]  ;
      LEFT

   oBtn[1]:lTransparent := .T.
   oBtn[1]:cToolTip =  { "Set old color", "RESET", 1, CLR_BLACK, 14089979 }
   oBtn[1]:SetColor( 0, )

   @ 90, 55 BTNBMP oBtn[2] OF oDlg ;
      SIZE 40, 15 PIXEL 2007 ;
      NOBORDER ;
      PROMPT "&Color" ;
      FILENAME c_path1 + "Colors.Bmp" ;
      ACTION  TESTCOLOR( oDlg, nBColor2, nTxtColor2 ) ;
      FONT oFont[1]  ;
      LEFT

   oBtn[2]:lTransparent := .T.
   oBtn[2]:cToolTip =  { "Change color", "SET COLOR", 1, CLR_BLACK, 14089979 }
   oBtn[2]:SetColor( 0, )

   @ 90, 105 BTNBMP oBtn[3] OF oDlg ;
      SIZE 40, 15 PIXEL 2007 ;
      NOBORDER ;
      PROMPT "&Exit" ;
      FILENAME c_path1 + "Exit.Bmp" ;
      ACTION oDlg:End() ;
      FONT oFont[1]  ;
      LEFT

   oBtn[3]:lCancel := .T.
   oBtn[3]:lTransparent := .T.
   oBtn[3]:cToolTip =  { "Exit color-test", "EXIT", 1, CLR_BLACK, 14089979 }
   oBtn[3]:SetColor( 0, )

   TESTCOLOR( oDlg, nBColor1, nTxtColor1 )

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT oDlg:SetBrush( oBrush )

   oFont[1]:End()
   oFont[2]:End()
   oFont[3]:End()

   RELEASE BRUSH oBrush

RETURN NIL
// COLORES
FUNCTION TESTCOLOR( oDlg, nBColor, nTxtColor )

   LOCAL Y, TXT, X := 1, cClassname, aItems := {}

   // Get control-types and create array
   // -----------------------------------------------
   FOR X = 1 TO LEN( oDlg:aControls )
      cClassname := oDlg:aControls[X]:Classname()
   DEFAULT cClassname := "\\"

      IF cClassname <> "\\"
         // define Control-classes ( add needed controls )
         // ----------------------------------------------------------------
         IF cClassname = "TGET"
            //                            Class-name                                 ID          Pos
            AADD( aItems, { cClassname, oDlg:aControls[X]:nid, " ", X } )
         ELSEIF cClassname = "TSAY"
            //                            Class-name                                 ID          Pos
            AADD( aItems, { cClassname, oDlg:aControls[X]:nid, " ", X } )
         ELSEIF cClassname = "TRADIO"
            //                            Class-name                                 ID          Pos
            AADD( aItems, { cClassname, oDlg:aControls[X]:nid, " ", X } )
         ELSEIF cClassname = "TCHECKBOX"
            //                            Class-name                                 ID          Pos
            AADD( aItems, { cClassname, oDlg:aControls[X]:nid, " ", X } )
         ELSEIF cClassname = "TBTNBMP"
            //                            Class-name                                  ID   Button-text                               Pos
            AADD( aItems, { cClassname, oDlg:aControls[X]:nId, oDlg:aControls[X]:cCaption, X } )
         ELSEIF cClassname = "TXBROWSE"
            FOR Y = 1 TO LEN( oDlg:aControls[X]:aHeaders )
               TXT := TXT + RTRIM( oDlg:aControls[X]:aHeaders[Y] ) + "|"
            NEXT
            //                            Class-name                                  ID    Col-text  Pos
            AADD( aItems, { cClassname, oDlg:aControls[X]:nId, TXT,        X } )
         ENDIF
      ENDIF

      IF aItems[X][1] = "TGET" .OR. aItems[X][1] = "TSAY"
         //MsgAlert( nBCoColor, "Get and Say" )
         oDlg:aControls[X]:Setcolor( nTxtColor, nBColor )
         oDlg:aControls[X]:Refresh()
      ENDIF

      IF aItems[X][1] = "TRADIO"

         //MsgAlert( nBColor, ' classname "TRADIO" ' )

         oDlg:aControls[X]:SetColor( nTxtColor, nBColor )
         oDlg:aControls[X]:Refresh()

      ENDIF

      IF aItems[X][1] = "TCHECKBOX"

         // MsgAlert( nBColor, ' classname "TCHECKBOX" ' )

         oDlg:aControls[X]:Setcolor( nTxtColor, nBColor )
         oDlg:aControls[X]:Refresh()

      ENDIF

   NEXT

RETURN NIL

/*
oDlg:aControls[X]:oBrush:End()
oDlg:aControls[X]:SetColor( nTxtColor, nBColor )
*/
Saludos.

Re: Cómo dar color al Texto de CheckBox y Group Box?

Posted: Thu Jul 18, 2019 7:18 pm
by karinha