Color en checkbox no editable

Post Reply
User avatar
José Luis Sánchez
Posts: 484
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

Color en checkbox no editable

Post by José Luis Sánchez »

Hola a todos,
en el Puchero https://github.com/JoseluisSanchez/puchero tengo un formulario de recetas donde _ se calculan de manera automática. _ son GET no editables y los pongo en color haciendo lo siguiente:

Code: Select all

   REDEFINE GET aSayEsc[ 9 ] VAR nReAz2 PICTURE "@E 9,999,999.99" ;
      ID 27 OF oFld:aDialogs[ 6 ] WHEN .F.
   aSayEsc[ 9 ]:lDisColors  := .F.
   aSayEsc[ 9 ]:nClrTextDis := GetSysColor( 13 )
 
El resultado es

Image

Ahora quiero hacer lo mismo con unos checkbox que también llevan la clausula WHEN .f para que el usuario no los edite, pero no encuentro la forma. Quiero darles el mismo color por un tema de coherencia del interfaz, pues el gris de control deshabilitado queda un tanto feote.

Image

¿ Alguien sabe como hacer esto ?

Saludos,
José Luis
User avatar
Rick Lipkin
Posts: 2397
Joined: Fri Oct 07, 2005 1:50 pm
Location: Columbia, South Carolina USA

Re: Color en checkbox no editable

Post by Rick Lipkin »

Jose

I have had trouble tabbing thru check-boxes and active gets in a mix of controls was confusing to users . I found this simple code which changes the color of the Get when it gets in focus:

Code: Select all

SetGetColorFocus( rgb(209,224,252) )      // turn on color for in focus gets

SetGetColorFocus( CLR_WHITE )   // resets the in-focus back to default ..
 
may not be exactly what you are looking for ..

Rick Lipkin
JESUS MARIN
Posts: 91
Joined: Wed Jan 02, 2019 8:36 am

Re: Color en checkbox no editable

Post by JESUS MARIN »

Buenos días José Luis.
Prueba, si lo deseas este ejemplo. Por si te puede inspirar algo.

Code: Select all

# INCLUDE "FIVEWIN.CH"


FUNCTION MAIN()

LOCAL oDlg, oFont
LOCAL oCheck, lCheck:=.t.


DEFINE FONT oFont NAME "calibri" SIZE 0,-14

DEFINE DIALOG oDlg FROM 0,0 TO 300,600 PIXEL TITLE "Prueba de color en CheckBox desactivado"


      @20,50 CHECKBOX oCheck VAR lCheck PROMPT "Gluten" OF oDlg PIXEL UPDATE FONT oFont SIZE 80,20


     @120,10  BUTTON "Desactivar" OF oDlg PIXEL FONT oFont SIZE 50,22 ACTION xDisable(oCheck)
     @120,70  BUTTON "Activar"    OF oDlg PIXEL FONT oFont SIZE 50,22 ACTION oCheck:Enable()
     @120,240 BUTTON "Salir"      OF oDlg PIXEL FONT oFont SIZE 50,22 ACTION oDlg:End()

ACTIVATE DIALOG oDlg CENTER


oFont:End()

RETURN(NIL)



STATIC FUNCTION xDisable(oCheckBox)

LOCAL oWnd     := oCheckBox:oWnd
LOCAL oFont    := oCheckBox:oFont
LOCAL cCaption := oCheckBox:cCaption
LOCAL nTop     := oCheckBox:nTop
LOCAL nLeft    := oCheckBox:nLeft
LOCAL nWidth   := oCheckBox:nWidth-18      // Los ajustes -18 y -12 dependen del tipo de letra, si es un Dialogo, etc..
LOCAL nHeight  := oCheckBox:nHeight-12      // Debería ser calculado para cualquier font. Esto es solo para el ejemplo

oCheckBox:Disable()
@nTop+12,nLeft+18 SAY cCaption OF oWnd SIZE nWidth, nHeight FONT oFont PIXEL

RETURN(NIL)

 
User avatar
mgsoft
Posts: 398
Joined: Mon Aug 17, 2009 12:18 pm
Location: España

Re: Color en checkbox no editable

Post by mgsoft »

José Luis,

¿Podrías decirnos como pones el título del diálogo en azul?

Muchas gracias.
Saludos,

Eduardo
User avatar
José Luis Sánchez
Posts: 484
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

Re: Color en checkbox no editable

Post by José Luis Sánchez »

Rick, thanks but that's not what I'm looking for
Jesús, pues lo de la letra lo veo complicado de calcular, pero me has dado una idea. Tendría que hacerlo con bitmaps, es un trabajazo pero puede quedar bien.
MG, los colores son los de Windows con énfasis en la barra de título, no es cosa de mi programa.

Saludos,
jgabri
Posts: 17
Joined: Mon Jan 14, 2019 11:43 am

Re: Color en checkbox no editable

Post by jgabri »

José Luis, pon los checkbox sin texto y a la derecha de cada uno, le pones un say, al say le cambias el color...

Un saludo
User avatar
José Luis Sánchez
Posts: 484
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

Re: Color en checkbox no editable

Post by José Luis Sánchez »

Al final decidí hacerme mis propios checkbox usando un bitmappara el cuadro y un text para la etiqueta. De esta manera tengo los mismos colores que en los get no editables. Es más frabajo, pero creo que el resultado ha valido la pena:

Image

El código es muy sencillo:

Code: Select all

   REDEFINE BITMAP aAler[01] ID 201 OF oFld:aDialogs[ 7 ] ;
      RESOURCE IIF(lReEGluten==.t., "16_CHECK_BOX", "16_UNCHECK_BOX") TRANSPARENT UPDATE 
   REDEFINE SAY aAler[ 16 ] ID 202 OF oFld:aDialogs[ 7 ] COLOR GetSysColor( 13 )
 
Saludos,
Post Reply