He estado quebrándome la cabeza buscando como solucionar un problema de poder cambiar el color de fondo de un SAY en un TFolderEx. Pensé que había un problema de refresco del diálogo del Folder, pero es imposible poder cambiar el color de fondo, sólo me cambia el color de Font pero no el fondo, cómo sí lo hace el SAY que está fuera del Folder.
Le adjunto el código que estoy usando
- Code: Select all Expand view
#include "Fivewin.ch"
#include "colors.ch"
STATIC FUNCTION SayDinamico()
LOCAL oDlg,oSay,oTmr, oFld, oSay1, oFont1
DEFINE FONT oFont1 NAME "TAHOMA" SIZE 0,-12 BOLD
DEFINE DIALOG oDlg RESOURCE "UPDATE1"
REDEFINE SAY oSay ID 101 PROMPT "Cambiando de Color" OF oDlg COLOR CLR_BLUE, CLR_LIGHTYELLOW
REDEFINE FOLDEREX oFld ID 110 OF oDlg ;
PROMPTS " 1 " ;
DIALOGS "PAR1" ;
BITMAPS "ACEPTA16" ;
UPDATE
oFld:aEnable = { .t. }
REDEFINE SAY oSay1 ID 102 PROMPT "Cambiando de Color" OF oFld:aDialogs[1] COLOR CLR_BLUE, CLR_LIGHTYELLOW UPDATE FONT oFont1
REDEFINE BUTTONBMP ID 200 OF oDlg ;
BITMAP "ACEPTA16" PROMPT " &Color" TEXTRIGHT ;
ACTION ChangeColor( oSay, oSay1, oFld )
ACTIVATE DIALOG oDlg
RETURN Nil
STATIC FUNCTION ChangeColor( oSay, oSay1, oFld )
STATIC lStatus := .F.
IF lStatus
oSay:SETCOLOR( CLR_BLUE, CLR_LIGHTYELLOW )
oSay1:SETCOLOR( METRO_GREEN, CLR_LIGHTYELLOW )
oSay1:Update()
oSay1:Refresh()
oFld:aDialogs[1]:Refresh()
oFld:aDialogs[1]:Update()
ELSE
oSay:SETCOLOR( CLR_YELLOW, METRO_PINK )
oSay1:SETCOLOR( METRO_RED, METRO_PINK )
oSay1:Update()
oSay1:Refresh()
oFld:aDialogs[1]:Refresh()
oFld:aDialogs[1]:Update()
ENDIF
oSay:Refresh()
lStatus = ! lStatus
RETURN Nil
Les adjunto las imágenes de que resultan al hacer Click en el botón Color:
subir fotos online
hosting imagenes
subir imagen
Si se dan cuenta en en las imágenes, sólo puedo cambiar el color de la fuente, pero no así el color de fondo del SAY, cómo si se logra en el SAY fuera del Folder
Le agradecería que me pudieran indicar que estoy haciendo mal
Gracias de ante mano
Saludos desde Chile