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
http://forums.fivetechsupport.com/viewt ... 16#p163898
Lo máximo que he podido ver es:
Code: Select all
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
http://forums.fivetechsupport.com/viewt ... 16#p163898
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
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: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- 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
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 .Antonio Linares wrote:Manuel,
Prueba a hacer con cada SAY:
oSay:lTransparent := .F.
Code: Select all
// 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
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
Code: Select all
#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.> )
Re: Los Says que muestran los colores no funcionan
Con esto se resuelve el problema ...
Code: Select all
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: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- 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: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- 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