Los Says que muestran los colores no funcionan (solucionado)
Los Says que muestran los colores no funcionan (solucionado)
Los says que muestran visualmente los colores que usamos en el reporte no funcionan . Boton Fonts -> folder colors ...
Se quedan transparentes y no asignan el color de fondo . He revisado el código y parece que está bien pero no va y no lo localizo . ¿ Puede ser un tema del color de fondo del dialogo ? . No pillo el gazapo y seguro que es tonto .
Se quedan transparentes y no asignan el color de fondo . He revisado el código y parece que está bien pero no va y no lo localizo . ¿ Puede ser un tema del color de fondo del dialogo ? . No pillo el gazapo y seguro que es tonto .
Re: Los Says que muestran los colores no funcionan
Manuel, llevo unas horas mirando y tampoco lo consigo
Lo máximo que he podido ver es:
Lo que pretendía es algo parecido a lo que tiene el compañero, en el que todo el Say aparezca relleno con el color correspondiente
viewtopic.php?f=3&t=29016#p163898
Lo máximo que he podido ver es:
Code: Select all | Expand
For x = 1 to Len( aColorSay )
nDefClr := Val( aColors[ x ] )
REDEFINE SAY aColorSay[ x ] ID 401+(x-1) OF oFld:aDialogs[i] COLORS nDefClr , nDefClr
Next x
Lo que pretendía es algo parecido a lo que tiene el compañero, en el que todo el Say aparezca relleno con el color correspondiente
viewtopic.php?f=3&t=29016#p163898
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
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
Re: Los Says que muestran los colores no funcionan
Se resuelve comentando la linea :
// SetDlgGradient( { { 1, RGB( 199, 216, 237 ), RGB( 237, 242, 248 ) } } )
en la function main() al principio del programa.
// SetDlgGradient( { { 1, RGB( 199, 216, 237 ), RGB( 237, 242, 248 ) } } )
en la function main() al principio del programa.
Re: Los Says que muestran los colores no funcionan
Es un problema con los say cuando se usa manifest o degradados , que no coge los colores de fondo que se asignan ya que el fondo se vuelve transparente .
Seria deseable que en el codigo fivewin pudieramos asignar algo como osay:lOldColors := .t. y esto hiciera que el comportamiento de los say fuera como antiguamente ...
Seria deseable que en el codigo fivewin pudieramos asignar algo como osay:lOldColors := .t. y esto hiciera que el comportamiento de los say fuera como antiguamente ...
- Antonio Linares
- Site Admin
- Posts: 42398
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 10 times
- Been thanked: 47 times
- Contact:
Re: Los Says que muestran los colores no funcionan
Manuel,
Prueba a hacer con cada SAY:
oSay:lTransparent := .F.
Prueba a hacer con cada SAY:
oSay:lTransparent := .F.
Re: Los Says que muestran los colores no funcionan
Antonio Linares wrote:Manuel,
Prueba a hacer con cada SAY:
oSay:lTransparent := .F.
No funciona , lo he revisado y este comportamiento pasa cuando el say esta colocado dentro de un Folder . Si lo colocamos directamente sobre el dialogo funciona correcto .
Code: Select all | Expand
// esto debe compilarse incluyendo el manifest ...
function Main()
local oDlg, i
local aSay[42]
local aColors := { "COLOR_SCROLLBAR" ,;
"COLOR_BACKGROUND" ,;
"COLOR_ACTIVECAPTION" ,;
"COLOR_INACTIVECAPTION",;
"COLOR_MENU" ,;
"COLOR_WINDOW" ,;
"COLOR_WINDOWFRAME" ,;
"COLOR_MENUTEXT" ,;
"COLOR_WINDOWTEXT" ,;
"COLOR_CAPTIONTEXT" ,;
"COLOR_ACTIVEBORDER" ,;
"COLOR_INACTIVEBORDER" ,;
"COLOR_APPWORKSPACE" ,;
"COLOR_HIGHLIGHT" ,;
"COLOR_HIGHLIGHTTEXT" ,;
"COLOR_BTNFACE" ,;
"COLOR_BTNSHADOW" ,;
"COLOR_GRAYTEXT" ,;
"COLOR_BTNTEXT" ,;
"COLOR_INACTIVECAPTIONTEXT",;
"COLOR_BTNHIGHLIGHT" }
DEFINE DIALOG oDlg FROM 1, 1 TO 46, 130 ;
TITLE "Colores de Windows"
@ 10,10 FOLDER oFld PROMPT "1-99", "100-199" OF oDlg PIXEL SIZE 200,175
FOR i := 1 TO 21
@ i, 02 SAY aSay[(2*i)-1] PROMPT STR(i-1,2)+ " "+ aColors[i] OF oFld:aDialogs[ 1 ]
@ i, 18 SAY aSay[2*i] PROMPT " " SIZE 30, 8 ;
COLOR GetSysColor(i-1), GetSysColor(i-1) OF oFld:aDialogs[ 1 ]
aSay[2*i] :=lTransparent:= .f.
NEXT
FOR i := 1 TO 21
@ i, 44 SAY aSay[(2*i)-1] PROMPT STR(i-1+21,2)+ " "+ aColors[i] OF oDlg
@ i, 60 SAY aSay[2*i] PROMPT " " SIZE 30, 8 ;
COLOR GetSysColor(i-1+21), GetSysColor(i-1+21) OF oDlg
NEXT
ACTIVATE DIALOG oDlg
return nil
Re: Los Says que muestran los colores no funcionan
Despues de muchos intentos una mejor solucion es usar btnFlat en vez say . Para ello he implementado el methodo redefine en la clase btnflat :
y su include correspondiente :
He hecho un pequeño test y funciona bien con los recursos button ...
Code: Select all | Expand
METHOD ReDefine( nId, bAction, oWnd, oFont, ;
lUpdate, bWhen, bValid, cPrompt, lBorder,;
nClrText, nClrPane, lCancel, lDefault ) CLASS TBtnFlat
DEFAULT lBorder := .F., ;
nClrText := CLR_WHITE, nClrPane := CLR_BLUE, ;
lCancel := .F. , lDefault := .F.
DEFAULT oWnd := GetWndDefault()
::nStyle = nOR( WS_CHILD, WS_VISIBLE, WS_TABSTOP, If( lDefault, BS_DEFPUSHBUTTON, 0 ) )
::nId = nId
::bAction = bAction
if oFont == nil
::GetFont()
else
::SetFont( oFont )
endif
::oWnd = oWnd
::lUpdate = lUpdate
::bWhen = bWhen
::bValid = bValid
::cCaption = cPrompt
::lCancel = lCancel
::nClrText = nClrText
::nClrPane = nClrPane
::lBorder = lBorder
::lDefault = lDefault
::lPressed = .F.
::lBtnDown = .F.
::lBtnUp = .F.
::lWorking = .F.
::lTransparent = .F.
::nDlgCode = DLGC_WANTALLKEYS
::Register( nOR( CS_VREDRAW, CS_HREDRAW ) )
oWnd:DefControl( Self )
return Self
y su include correspondiente :
Code: Select all | Expand
#xcommand REDEFINE FLATBTN [<oBtn>] ;
[ ID <nId> ] ;
[ ACTION <uAction,...> ] ;
[ <of:OF, WINDOW, DIALOG> <oWnd> ] ;
[ VALID <uValid> ] ;
[ WHEN <uWhen> ] ;
[ <lUpdate: UPDATE> ] ;
[ PROMPT <cPrompt> ] ;
[ COLOR <nClrText>, <nClrPane> ] ;
[ FONT <oFont> ] ;
[ <lNoBorder: NOBORDER> ] ;
[ <lCancel: CANCEL> ] ;
[ <lDefault: DEFAULT> ] ;
=> ;
[ <oBtn> := ] TBtnFlat():Redefine( <nId>,;
[{|Self|<uAction>}], <oWnd>, <oFont>, <.lUpdate.>,<{uWhen}>, <{uValid}>,;
<cPrompt>, !<.lNoBorder.>, <nClrText>, <nClrPane>, <.lCancel.>, <.lDefault.> )
He hecho un pequeño test y funciona bien con los recursos button ...
Re: Los Says que muestran los colores no funcionan
Con esto se resuelve el problema ...
Code: Select all | Expand
function GeneralSettings()
......
FOR n=1 TO 30
REDEFINE FLATBTN aColorSay[n ] PROMPT "" ID (400+n) OF oFld:aDialogs[i] COLOR SetColor( aColors[n ], nDefClr ), SetColor( aColors[n ], nDefClr ) ;
ACTION .t.
next
// REDEFINE SAY aColorSay[1 ] PROMPT "" ID 401 OF oFld:aDialogs[i] COLORS SetColor( aColors[1 ], nDefClr ), SetColor( aColors[1 ], nDefClr )
// REDEFINE SAY aColorSay[2 ] PROMPT "" ID 402 OF oFld:aDialogs[i] COLORS SetColor( aColors[2 ], nDefClr ), SetColor( aColors[2 ], nDefClr )
.....
- Antonio Linares
- Site Admin
- Posts: 42398
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 10 times
- Been thanked: 47 times
- Contact:
Re: Los Says que muestran los colores no funcionan
Manuel,
Actualizado FWH con tus cambios, muchas gracias
Actualizado FWH con tus cambios, muchas gracias
- Antonio Linares
- Site Admin
- Posts: 42398
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 10 times
- Been thanked: 47 times
- Contact:
Re: Los Says que muestran los colores no funcionan
Manuel,
He conseguido solucionar los colores evitando tenr que usar BtnFlats
Ya he actualizado el respositorio
He conseguido solucionar los colores evitando tenr que usar BtnFlats
Ya he actualizado el respositorio