Color de get
Color de get
Buenos días a los componentes del foro.
Tengo un cuadro de dialogo con varios gets de la siguiente forma
REDEFINE GET cRefe ID 10 COLOR "W/B" WHEN .F.
El problema es que el color no soy capaz de modificarlo, ya que siempre se queda en un gris claro. Me interesa que no se pueda modicar pero que sea legible.
¿Se puede modificar el color?.
Muchas gracias.
Tengo un cuadro de dialogo con varios gets de la siguiente forma
REDEFINE GET cRefe ID 10 COLOR "W/B" WHEN .F.
El problema es que el color no soy capaz de modificarlo, ya que siempre se queda en un gris claro. Me interesa que no se pueda modicar pero que sea legible.
¿Se puede modificar el color?.
Muchas gracias.
Saludos. Fernando
- karinha
- Posts: 7932
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
//-> Modifica estas Lyneas en TGET.PRG
#define ES_CENTER 1
#define ES_RIGHT 2
#define ES_LEFT 0
#Define TA_LEFT 0
#Define TA_RIGHT 2
#Define TA_CENTER 6
Saludos.
#define ES_CENTER 1
#define ES_RIGHT 2
#define ES_LEFT 0
#Define TA_LEFT 0
#Define TA_RIGHT 2
#Define TA_CENTER 6
Code: Select all | Expand
METHOD Paint() CLASS TGet
local aInfo := ::DispBegin()
Local hOldFont
//-> Mudan‡as Feitas em 22/12/2005 Por Antonio Linares
//-> Para que o When(.F.) do GET, fique colorido normal. Muito bom. Joao.
if ::oBrush != nil
FillRect( ::hDC, GetClientRect( ::hWnd ), ::oBrush:hBrush )
else
CallWindowProc( ::nOldProc, ::hWnd, WM_ERASEBKGND, ::hDC, 0 )
endif
if IsWindowEnabled( ::hWnd )
CallWindowProc( ::nOldProc, ::hWnd, WM_PAINT, ::hDC, 0 )
//-> Para BTNGET.PRG Quando o RIGHT Esta ligado no WorkShop.exe
//-> Modificado em 20/02/2008 - Por Joao Santos
SetTextColor( ::hDC, ::nClrText )
SetBkColor( ::hDC, ::nClrPane )
hOldFont = SelectObject( ::hDC, ::oFont:hFont )
do case
case lAnd( GetWindowLong( ::hWnd, GWL_STYLE ), ES_RIGHT )
SetTextAlign( ::hDC, TA_RIGHT )
ExtTextOut( ::hDC, 0, ::nWidth() - 44, ;
{ 0, 0, ::nHeight(), ::nWidth() }, GetWindowText( ::hWnd ) )
endcase
else
SetTextColor( ::hDC, ::nClrText )
SetBkColor( ::hDC, ::nClrPane )
hOldFont = SelectObject( ::hDC, ::oFont:hFont )
do case
case lAnd( GetWindowLong( ::hWnd, GWL_STYLE ), ES_CENTER )
SetTextAlign( ::hDC, TA_CENTER )
ExtTextOut( ::hDC, 0, ::nWidth() / 2, ;
{ 0, 0, ::nHeight(), ::nWidth() }, GetWindowText( ::hWnd ) )
case lAnd( GetWindowLong( ::hWnd, GWL_STYLE ), ES_RIGHT )
SetTextAlign( ::hDC, TA_RIGHT )
ExtTextOut( ::hDC, 0, ::nWidth() - 4, ;
{ 0, 0, ::nHeight(), ::nWidth() }, GetWindowText( ::hWnd ) )
otherwise
SetTextAlign( ::hDC, TA_LEFT )
//-> Posicao do Get
ExtTextOut( ::hDC, 0, 4, ;
{ 0, 0, ::nHeight(), ::nWidth() }, GetWindowText( ::hWnd ) )
endcase
SelectObject( ::hDC, hOldFont )
endif
if ValType( ::bPainted ) == "B"
Eval( ::bPainted, ::hDC, ::cPS, Self )
endif
::DispEnd( aInfo )
return 1
Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
- jrestojeda
- Posts: 601
- Joined: Wed Jul 04, 2007 3:51 pm
- Location: Buenos Aires - Argentina
Hola amigo.
Puedes usar los colores que quieras con la función RGB(,,)
Los parámetros de RGB() van de 0 a 255 de esa forma con los tres parámetros tienes los colores que quieras.
Color1 es el color de la letra del GET y Color2 el color del fondo, Color3 solo está definido para que veas que se pueden definir tantos colores como quieras y obviamente usarlos.
Espero te sirva.
Saludos desde Argentina, Esteban.
Puedes usar los colores que quieras con la función RGB(,,)
Los parámetros de RGB() van de 0 a 255 de esa forma con los tres parámetros tienes los colores que quieras.
Code: Select all | Expand
Local Color1,Color2,Color3...
Color1:=RGB(0,0,0)
Color2:=RGB(255,255,255)
Color3:=RGB(128,128,128)
REDEFINE GET cRefe ID 10 COLOR Color1,Color2 WHEN .F.
Color1 es el color de la letra del GET y Color2 el color del fondo, Color3 solo está definido para que veas que se pueden definir tantos colores como quieras y obviamente usarlos.
Espero te sirva.
Saludos desde Argentina, Esteban.
jrestojeda wrote:Hola amigo.
Puedes usar los colores que quieras con la función RGB(,,)
Los parámetros de RGB() van de 0 a 255 de esa forma con los tres parámetros tienes los colores que quieras.Code: Select all | Expand
Local Color1,Color2,Color3...
Color1:=RGB(0,0,0)
Color2:=RGB(255,255,255)
Color3:=RGB(128,128,128)
REDEFINE GET cRefe ID 10 COLOR Color1,Color2 WHEN .F.
Color1 es el color de la letra del GET y Color2 el color del fondo, Color3 solo está definido para que veas que se pueden definir tantos colores como quieras y obviamente usarlos.
Espero te sirva.
Saludos desde Argentina, Esteban.
Esteban, he probado pero no funciona. Muchas gracias.
Saludos. Fernando
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
la clase tiene una data que se llama
lDisColors por default esta activada, cuando la desactivas, los colores del disable se pintan igual que el enable...
yo hice unos cambios a la clase...
le agrege 2 datas nuevas
DATA nClrTextDis, nClrPaneDis
que van a determinar los colores del text y pane cuando esta disable el get, pero tiene que estar desactivada la data lDisColors para que funcione...
en el metodo New y redefine agrege:
::nClrTextDis = nClrFore
::nClrPaneDis = nClrBack
en el metodo paint modifique estas lineas
por estas...
ahora puedes hacer uso de esa variables cuando el get esta disable, puedes usar la data tanto como valores numericos ( codigo de colores ) como codeblock
ejemplo
oGet:lDisColors := .f.
oGet:nClrTextDis := CLR_WHITE
oGet:nClrPaneDis := {|| if( empty( aVar[ 2 ] ), CLR_BLUE, CLR_BLACK ) }
recuerda tener desactivado lDisColors
lDisColors por default esta activada, cuando la desactivas, los colores del disable se pintan igual que el enable...
yo hice unos cambios a la clase...
le agrege 2 datas nuevas
DATA nClrTextDis, nClrPaneDis
que van a determinar los colores del text y pane cuando esta disable el get, pero tiene que estar desactivada la data lDisColors para que funcione...
en el metodo New y redefine agrege:
::nClrTextDis = nClrFore
::nClrPaneDis = nClrBack
en el metodo paint modifique estas lineas
Code: Select all | Expand
if ::lDisColors
SetTextColor( ::hDC, GetSysColor( COLOR_GRAYTEXT ) )
SetBkColor( ::hDC, GetSysColor( COLOR_WINDOW ) )
else
SetTextColor( ::hDC, ::nClrText )
SetBkColor( ::hDC, ::nClrPane )
endif
por estas...
Code: Select all | Expand
if ::lDisColors
SetTextColor( ::hDC, GetSysColor( COLOR_GRAYTEXT ) )
SetBkColor( ::hDC, GetSysColor( COLOR_WINDOW ) )
else
if ValType( ::nClrTextDis ) == "B"
SetTextColor( ::hDC, Eval( ::nClrTextDis ) )
elseif ValType( ::nClrTextDis ) == "N"
if ::nClrTextDis <> 0
SetTextColor( ::hDC, ::nClrTextDis )
else
SetTextColor( ::hDC, ::nClrText )
endif
endif
if ValType( ::nClrPaneDis ) == "B"
SetBkColor( ::hDC, Eval( ::nClrPaneDis ) )
elseif ValType( ::nClrPaneDis ) == "N"
if ::nClrPaneDis <> 0
SetBkColor( ::hDC, ::nClrPaneDis )
else
SetBkColor( ::hDC, ::nClrPane )
endif
endif
endif
ahora puedes hacer uso de esa variables cuando el get esta disable, puedes usar la data tanto como valores numericos ( codigo de colores ) como codeblock
ejemplo
oGet:lDisColors := .f.
oGet:nClrTextDis := CLR_WHITE
oGet:nClrPaneDis := {|| if( empty( aVar[ 2 ] ), CLR_BLUE, CLR_BLACK ) }
recuerda tener desactivado lDisColors
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Re: Color de get
Hola Fernando
yo tengo la clase tget modificada
si deseas te la mando al correo que me indiques
He definido un color para cuando tiene el focus (util cuando hay varios gets,, y el usuario se la pasa buscando la rayita del Get activo porque tod tiene fondo blanco.. ) , otro color para cuando tenemos los gets deshabilidatos (que normalmente se ven plomizos ... claros )
Lubin
yo tengo la clase tget modificada
si deseas te la mando al correo que me indiques
He definido un color para cuando tiene el focus (util cuando hay varios gets,, y el usuario se la pasa buscando la rayita del Get activo porque tod tiene fondo blanco.. ) , otro color para cuando tenemos los gets deshabilidatos (que normalmente se ven plomizos ... claros )
Lubin
- Antonio Linares
- Site Admin
- Posts: 42513
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- Contact:
- Willi Quintana
- Posts: 1025
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
- Antonio Linares
- Site Admin
- Posts: 42513
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- Contact:
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
mcfox wrote:la clase tiene una data que se llama
lDisColors por default esta activada, cuando la desactivas, los colores del disable se pintan igual que el enable...
pense que eso seria un problema...
con los cambios que hice, pense en pintar diferente los colores del get cuando estan disable y no que tengan el mismo aspecto que los get que estan enable...
usando solo lDisColors:=.f. todos los get tendran el mismo color, como saber a simple vista cual esta enable y disable??
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
mcfox wrote:mcfox wrote:la clase tiene una data que se llama
lDisColors por default esta activada, cuando la desactivas, los colores del disable se pintan igual que el enable...
pense que eso seria un problema...
con los cambios que hice, pense en pintar diferente los colores del get cuando estan disable y no que tengan el mismo aspecto que los get que estan enable...
usando solo lDisColors:=.f. todos los get tendran el mismo color, como saber a simple vista cual esta enable y disable??
Puedes poner un COLOR diferente para los que se pueden o no se pueden editar. Así lo tengo ahora
Un saludo. Fernando
Saludos. Fernando
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
como haces para tener un color diferente en los get que estan disable sin modificar la clase?
me iteresaria mucho saber para volver a poner mi antigua tget y usar el codigo original en mis sistemas
me iteresaria mucho saber para volver a poner mi antigua tget y usar el codigo original en mis sistemas
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
mcfox wrote:como haces para tener un color diferente en los get que estan disable sin modificar la clase?
me iteresaria mucho saber para volver a poner mi antigua tget y usar el codigo original en mis sistemas
Tras la sugerencia de Antonio, he cambiado el código de la siguiente forma:
REDEFINE GET oGet VAR cRamo ID 17 COLOR Color1,Color2 OF oDlg WHEN .F.
oGet:lDisColors = .F.
REDEFINE GET oGet VAR nnHonorarios ID 14 OF oDlg PICTURE "@E 99,999.99" UPDATE
REDEFINE GET oGet VAR nHonorarios ID 21 COLOR Color1,Color2 OF oDlg PICTURE "@E 99,999.99" UPDATE WHEN .F.
oGet:lDisColors = .F.
REDEFINE GET oGet VAR nKms ID 15 OF oDlg PICTURE "@E 999" UPDATE
REDEFINE GET oGet VAR pKms ID 22 COLOR Color1,Color2 OF oDlg PICTURE "@E 99,999.99" UPDATE WHEN .F.
oGet:lDisColors = .F.
REDEFINE GET oGet VAR nFotos ID 18 OF oDlg PICTURE "@E 999" UPDATE
REDEFINE GET oGet VAR pFotos ID 23 COLOR Color1,Color2 OF oDlg PICTURE "@E 99,999.99" UPDATE WHEN .F.
oGet:lDisColors = .F.
REDEFINE GET oGet VAR nApertura ID 19 OF oDlg PICTURE "@E 999" UPDATE
REDEFINE GET oGet VAR nApertura ID 24 COLOR Color1,Color2 OF oDlg PICTURE "@E 99,999.99" UPDATE WHEN .F.
oGet:lDisColors = .F.
Funciona estupendamente y se diferencia por el fondo del GET.
Un saludo. Fernando.
Saludos. Fernando