Cambiar Color de Fondo de un SAY en un TFolderEx

User avatar
checo176
Posts: 46
Joined: Wed Apr 20, 2011 3:08 pm

Cambiar Color de Fondo de un SAY en un TFolderEx

Post by checo176 »

Estimados amigos:

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

#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:


Image
subir fotos online

Image
hosting imagenes

Image
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
Sergio Vacarezza S.
Programador Freelance
sergio@vacarezza.cl
Santiago, Chile

xHarbour 1.2.3 - FWH 13.08 - Advantage 10.1
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Cambiar Color de Fondo de un SAY en un TFolderEx

Post by Antonio Linares »

Sergio,

Puedes proporcionar el fichero RC que has usado para tu ejemplo ? gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
checo176
Posts: 46
Joined: Wed Apr 20, 2011 3:08 pm

Re: Cambiar Color de Fondo de un SAY en un TFolderEx

Post by checo176 »

Antonio:

Muchas gracias por responder. Normalmente no uso fichero RC en mis compilaciones, sino que uso el fichero RES. Pero de igual modo te adjunto el fichero RC, generado desde mi fichero RES en Pelles C:

Este es el fichero RC:

Code: Select all

// RESOURCE SCRIPT generated by "Pelles C for Windows, version 7.00".

#include <windows.h>
#include <commctrl.h>
#include <richedit.h>

LANGUAGE LANG_SPANISH,SUBLANG_SPANISH_MODERN

1 MANIFEST "res1.xml"

NEW BITMAP "res1.bmp"

OPEN BITMAP "res2.bmp"

SEARCH BITMAP "res3.bmp"

PRINT BITMAP "res4.bmp"

TEST DIALOG DISCARDABLE 19, 47, 233, 124
STYLE WS_POPUP|DS_MODALFRAME|WS_CAPTION|WS_SYSMENU
CAPTION "FiveWin Folders Demo"
{
  CONTROL "", 110, "TFolderex", WS_TABSTOP, 16, 4, 200, 99
  CONTROL "&OK", 120, "Button", WS_TABSTOP, 98, 108, 37, 14
}

SUB1 DIALOG DISCARDABLE 18, 18, 205, 80
STYLE WS_CHILD|DS_3DLOOK
{
  CONTROL "Group", -1, "Button", BS_GROUPBOX, 7, 5, 140, 31
  CONTROL "A label", 10, "Static", WS_GROUP, 22, 17, 48, 8
  CONTROL "", 100, "ComboBox", WS_BORDER|CBS_DROPDOWN|WS_TABSTOP, 74, 14, 49, 33
  CONTROL "Another group", -1, "Button", BS_GROUPBOX, 8, 39, 139, 37
  CONTROL "This is a Checkbox", 92, "Button", BS_AUTOCHECKBOX|WS_TABSTOP, 46, 47, 73, 9
  CONTROL "&First", 110, "Button", WS_TABSTOP, 34, 58, 24, 14
  CONTROL "&SubDialog", 120, "Button", WS_TABSTOP, 68, 58, 43, 14
}

SUB2 DIALOG DISCARDABLE 18, 18, 142, 67
STYLE WS_CHILD|DS_3DLOOK
{
  CONTROL "Text", 110, "Button", BS_AUTORADIOBUTTON|WS_GROUP|WS_TABSTOP, 37, 30, 28, 12
  CONTROL "Text", 120, "Button", BS_AUTORADIOBUTTON|WS_TABSTOP, 37, 41, 28, 12
  CONTROL "Text", 130, "Button", BS_AUTORADIOBUTTON|WS_TABSTOP, 37, 52, 28, 12
  CONTROL "&Second", 104, "Button", WS_TABSTOP, 93, 26, 32, 12
}

LANGUAGE LANG_SPANISH,SUBLANG_SPANISH_CHILE

ACEPTA16 BITMAP "res5.bmp"

PAR1 DIALOG FIXED IMPURE 44, 45, 168, 44
STYLE WS_CHILD|DS_3DLOOK
FONT 8, "MS Sans Serif"
{
  CONTROL "", 102, "Static", SS_CENTER|WS_BORDER|WS_GROUP, 8, 12, 148, 12
}

UPDATE1 DIALOGEX DISCARDABLE 6, 18, 214, 98
STYLE WS_POPUP|DS_MODALFRAME|DS_CONTEXTHELP|DS_3DLOOK|WS_CAPTION|WS_SYSMENU|WS_VISIBLE
CAPTION "Prueba SAY Dinámico"
FONT 8, "Microsoft Sans Serif", 0, 0, 1
{
  CONTROL "", 200, "Button", BS_DEFPUSHBUTTON|WS_TABSTOP, 112, 76, 60, 16
  CONTROL "", 101, "Static", SS_CENTER|WS_BORDER|WS_GROUP, 4, 80, 100, 12
  CONTROL "", 110, "TFolderex", WS_TABSTOP, 16, 8, 161, 60
}

 
Sergio Vacarezza S.
Programador Freelance
sergio@vacarezza.cl
Santiago, Chile

xHarbour 1.2.3 - FWH 13.08 - Advantage 10.1
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Cambiar Color de Fondo de un SAY en un TFolderEx

Post by Antonio Linares »

Sergio,

Comprobado el error. Con la Clase TFolder funciona correctamente, pero efectivamente con la Clase TFolderEx falla.

Le he enviado un email a Danie, autor de la Clase TFolderEx, a ver si nos puede ayudar. Yo lo he estado revisando
pero de momento no se me ocurre a que pueda deberse.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
checo176
Posts: 46
Joined: Wed Apr 20, 2011 3:08 pm

Re: Cambiar Color de Fondo de un SAY en un TFolderEx

Post by checo176 »

Master:

Gracias por tu pronta respuesta. Que hiciste para que en Folder si funcione, ya que he cambiado el código y mi fichero RES y lo he probado ahora con Folder, en reemplazo de FolderEx, pero el resultado es el mismo, ya que sólo cambia el color del font no así el fondo del SAY que está en el Folder. Lo que si ocurre en el SAY que se encuentra fuera del Folder, que si cambia tanto el color del Font como el Fondo.

Este es el código de mi nuevo fichero ahora con Folder:

Code: Select all

#include "Fivewin.ch"
#include "colors.ch"

FUNCTION Main()
   local oWnd,oSay,oTmr, oFld, oSay1, oFont1

   DEFINE FONT oFont1 NAME "TAHOMA" SIZE 0,-12 BOLD 

   DEFINE  DIALOG    oWnd    RESOURCE "UPDATE"
   
//   DEFINE  DIALOG    oWnd    RESOURCE "UPDATE1"

   REDEFINE SAY oSay ID 101 PROMPT "Cambiando de Color" OF oWnd COLOR CLR_BLUE, CLR_LIGHTYELLOW

   REDEFINE FOLDER oFld ID 110 OF oWnd ;
         PROMPTS "  1  "               ;
         DIALOGS "PAR1"                   
         
/*         
   REDEFINE FOLDEREX oFld ID 110 OF oWnd  ;
         PROMPTS "  1  "                  ;
         DIALOGS "PAR1"                   ;
         BITMAPS "ACEPTA16"               
*/         
   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 oWnd  ;
         BITMAP "ACEPTA16"  PROMPT "       &Color" TEXTRIGHT ;  
         ACTION ChangeColor( oSay, oSay1, oFld )
         
   ACTIVATE WINDOW oWnd

RETURN Nil

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
 
 
Sergio Vacarezza S.
Programador Freelance
sergio@vacarezza.cl
Santiago, Chile

xHarbour 1.2.3 - FWH 13.08 - Advantage 10.1
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Cambiar Color de Fondo de un SAY en un TFolderEx

Post by karinha »

Que tal?

Code: Select all

// Testing FiveWin own folders controls support

#include "FiveWin.ch"
#include "Folder.ch"
#include "colors.ch"

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oBrush, oFld, oCbx, oSay
   local nValue := 2, oChk, lChk := .t.
   local cItem, nI

   local oSay1, oFont1

   DEFINE FONT oFont1 NAME "TAHOMA" SIZE 0,-12 BOLD

   SET _3DLOOK ON

   DEFINE BRUSH oBrush RESOURCE "Sky"

   //DEFINE DIALOG oDlg RESOURCE "Test" BRUSH oBrush TRANSPARENT
   DEFINE DIALOG oDlg RESOURCE "Test"  ;    //BRUSH oBrush TRANSPARENT
          COLORS CLR_BLACK, CLR_WHITE TRANSPARENT

   REDEFINE FOLDER oFld ID 110 OF oDlg ;
      PROMPT "CA-Cli&pper", "&and", "&Windows", "&Magic" ;
      DIALOGS "Sub1", "Sub2"

   oFld:aEnable = { .t., .t., .f., .f. }

   FOR nI := 1 TO LEN( oFld:aDialogs )
      oFld:aDialogs[nI]:SetBrush( oBrush )
      oFld:aDialogs[ nI ]:Refresh()
   NEXT
   
   REDEFINE GROUP ID 5 OF oFld:aDialogs[ 1 ]

   REDEFINE COMBOBOX oCbx VAR cItem ITEMS { "This", "is", "a test" } ;
      ID 100 OF oFld:aDialogs[ 1 ]

   REDEFINE CHECKBOX oChk VAR lChk ID 92 OF oFld:aDialogs[ 1 ] ON CHANGE MsgBeep()

   //REDEFINE SAY oSay ID 10 OF oFld:aDialogs[ 1 ] PROMPT "Cambiar Color"
   REDEFINE SAY oSay ID 10 PROMPT "Cambiando Color" OF oFld:aDialogs[1]  ;
            COLOR CLR_BLACK, CLR_YELLOW  UPDATE FONT oFont1

   REDEFINE GROUP ID 105 OF oFld:aDialogs[ 1 ]

   REDEFINE BUTTON ID 110 OF oFld:aDialogs[ 1 ] ;   // Redefining a child
            ACTION ChangeColor( oSay, oSay1, oFld )
//      ACTION oChk:SetText( Time() )

   REDEFINE BUTTON ID 120 OF oFld:aDialogs[ 1 ] ;
      ACTION DoBrowse()
      
   REDEFINE BITMAP ID 130 OF oFld:aDialogs[ 1 ] ;
      FILE "..\bitmaps\question.bmp" TRANSPARENT

   REDEFINE RADIO nValue ID 110, 120, 130 OF oFld:aDialogs[ 2 ] ;
      ON CHANGE MsgBeep()

   REDEFINE BUTTON ID 104 OF oFld:aDialogs[ 2 ] ;   // Redefining a child
      ACTION oFld:SetPrompts( { "one", "two", "three", "four" } )

   REDEFINE BUTTON ID 120 OF oDlg ;
      ACTION oDlg:End()

   oFld:aDialogs[ 1 ]:bRClicked = { || MsgInfo( "page 1" ) }
   oFld:aDialogs[ 2 ]:bRClicked = { || MsgInfo( "page 2" ) }

   ACTIVATE DIALOG oDlg CENTERED ;
      VALID MsgYesNo( "Want to end ?" )

return nil

//----------------------------------------------------------------------------//

function DoBrowse()

   USE Customer
   Browse()
   USE

return nil

//----------------------------------------------------------------------------//

FUNCTION ChangeColor( oSay, oSay1, oFld  )

STATIC lStatus := .F.
   
   IF lStatus

      oSay:SETCOLOR( CLR_BLUE, CLR_HRED  )

   ELSE

      oSay:SETCOLOR( CLR_HRED, CLR_WHITE )

   ENDIF     

   oSay:Refresh()

   lStatus = ! lStatus

RETURN Nil
 
João Santos - São Paulo - Brasil
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Cambiar Color de Fondo de un SAY en un TFolderEx

Post by karinha »

Code: Select all

#define IDC_CHECKBOX1   92
#include ".\..\include\WinApi.ch"

#ifdef __FLAT__
  1 24 "winxp\WindowsXP.Manifest"
#endif

#ifdef __64__
   1 24 "WinXP/WindowsXP.Manifest64"
#endif 

sky BITMAP "./../bitmaps/backgrnd/sky3.bmp"


Test DIALOG 19, 47, 233, 124
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "FiveWin Folders Demo"
{
 CONTROL "", 110, FOLDER32, 0 | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 4, 5, 225, 99
 PUSHBUTTON "&OK", 120, 98, 108, 37, 14
}


sub1 DIALOG 18, 18, 205, 80
STYLE WS_CHILD | 4
{
 GROUPBOX "Group", 5, 7, 5, 140, 31, BS_GROUPBOX
 LTEXT "A label", 10, 12, 17, 58, 10, WS_BORDER | WS_GROUP
 COMBOBOX 100, 74, 14, 49, 33, CBS_DROPDOWN | WS_TABSTOP
 GROUPBOX "Another group", 105, 8, 39, 139, 37, BS_GROUPBOX
 CHECKBOX "This is a Checkbox", IDC_CHECKBOX1, 46, 47, 73, 9, BS_AUTOCHECKBOX | WS_TABSTOP
 PUSHBUTTON "&Cambiar", 110, 18, 58, 40, 14
 PUSHBUTTON "&SubDialog", 120, 68, 58, 43, 14
 CONTROL "", 130, "TBitmap", WS_CHILD | WS_VISIBLE, 159, 19, 35, 38
}


sub2 DIALOG 18, 18, 142, 67
STYLE WS_CHILD | 4
{
 CONTROL "Text", 110, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 37, 30, 28, 12
 CONTROL "Text", 120, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 37, 41, 28, 12
 CONTROL "Text", 130, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 37, 52, 28, 12
 PUSHBUTTON "&Second", 104, 93, 26, 32, 12
}
 
João Santos - São Paulo - Brasil
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Cambiar Color de Fondo de un SAY en un TFolderEx

Post by Antonio Linares »

Sergio,

En el fichero de recursos tienes que cambiar "TFolderEx" por "SysTabControl32"
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
checo176
Posts: 46
Joined: Wed Apr 20, 2011 3:08 pm

Re: Cambiar Color de Fondo de un SAY en un TFolderEx

Post by checo176 »

Karinha,

Muchas gracias por tomarte el tiempo en responder. Verifiqué tu ejemplo que me enviaste, pero mantiene el mismo problema de fondo. Lo que necesito no es cambiarle el fondo al Folder, si no que cambiarle a voluntad el color del fondo del SAY. Si ves tu ejemplo ratifica lo expresado anteriormente en mi consulta al foro, ya que al hacer click sobre el botón Cambiar, sólo cambia el Color de del Font, no así el fondo del SAY, ya que mantiene el fondo que tiene el Folder.

Por lo menos el ejecutable que obtengo al compilar el código fuente que me enviaste, junto su fichero RC, no puedo obtener el cambio que necesito.

Quedo atento a tus comentarios y ayuda

Un abrazo desde Chile
Sergio Vacarezza S.
Programador Freelance
sergio@vacarezza.cl
Santiago, Chile

xHarbour 1.2.3 - FWH 13.08 - Advantage 10.1
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Cambiar Color de Fondo de un SAY en un TFolderEx

Post by karinha »

Comprendo. Creo que por encuanto, talvez sea mejor usar SSAY.PRG ó DSAY.PRG. Intente y comente. saludos.
João Santos - São Paulo - Brasil
User avatar
checo176
Posts: 46
Joined: Wed Apr 20, 2011 3:08 pm

Re: Cambiar Color de Fondo de un SAY en un TFolderEx

Post by checo176 »

karinha,

Gracias por tu idea, efectué _ usando la clase SSay y funciona perfectamente en un Folder, no asi en un FolderEx.

Te adjunto las imágenes del resultado, pero ahora los dos Folders juntos. Sólo funciona en el Folder normal.

Image
subir imagenes


Image
subir imagen

Lamentablemente no funciona en TFolderEx, siendo una clase muy completa y con una excelente presentación.

Ojalá haya alguna solución para TFolderEx

Saludos desde Chile

Te adjunto el Código fuente que usé finalmente:

Code: Select all

#include "Fivewin.ch"
#include "colors.ch"
#include "SSay.ch"
#include "FiveWin.ch"
#include "Constant.ch"


FUNCTION Main()
   local oWnd,oSay,oTmr, oFld, oFld1, oSay1, oSay2, oFont1

   DEFINE FONT oFont1 NAME "TAHOMA" SIZE 0,-12 BOLD 

   DEFINE  DIALOG    oWnd    RESOURCE "UPDATE"
   
//   DEFINE  DIALOG    oWnd    RESOURCE "UPDATE1"

   REDEFINE SAY oSay ID 101 PROMPT "Cambiando de Color" OF oWnd COLOR CLR_BLUE, CLR_LIGHTYELLOW
   

   REDEFINE FOLDER oFld ID 110 OF oWnd ;
         PROMPTS "  1  "               ;
         DIALOGS "PAR1"                   

         oFld:aEnable = { .t. }

     REDEFINE SENSITIVE SAY oSay1 ID 102            ;
            PROMPT "Cambiando de Color"             ;
            OF oFld:aDialogs[1]                     ;
            COLOR CLR_BLUE, CLR_LIGHTYELLOW        ;
            UPDATE                                  ;
            FONT oFont1
         
   REDEFINE FOLDEREX oFld1 ID 111 OF oWnd  ;
         PROMPTS "  1  "                  ;
         DIALOGS "PAR2"                   ;
         BITMAPS "ACEPTA16" 

         oFld1:aEnable = { .t. }
         
         
     REDEFINE SENSITIVE SAY oSay2 ID 103            ;
            PROMPT "Cambiando de Color"             ;
            OF oFld1:aDialogs[1]                     ;
            COLOR CLR_BLUE, CLR_LIGHTYELLOW        ;
            UPDATE                                  ;
            FONT oFont1
            
            
   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 SENSITIVE 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 oWnd  ;
         BITMAP "ACEPTA16"  PROMPT "       &Color" TEXTRIGHT ;  
         ACTION ChangeColor( oSay, oSay1, oSay2, oFld, oFld1 )
         
   ACTIVATE WINDOW oWnd

RETURN Nil

FUNCTION ChangeColor( oSay, oSay1, oSay2, oFld, oFld1  )

STATIC lStatus := .F.
   
   IF lStatus
      oSay:SETCOLOR( CLR_BLUE, CLR_LIGHTYELLOW )
      oSay1:SETCOLOR( METRO_GREEN, CLR_LIGHTYELLOW )
      oSay2:SETCOLOR( METRO_GREEN, CLR_LIGHTYELLOW )      
      oSay1:Update()
      oSay1:Refresh()
      oSay2:Update()
      oSay2:Refresh()      
      oFld:aDialogs[1]:Refresh()
      oFld:aDialogs[1]:Update()
      oFld1:aDialogs[1]:Refresh()
      oFld1:aDialogs[1]:Update()      
   ELSE  
      oSay:SETCOLOR( CLR_YELLOW, METRO_PINK )             
      oSay1:SETCOLOR( METRO_RED, METRO_PINK )
      oSay1:Update()
      oSay1:Refresh()
      oSay2:SETCOLOR( METRO_RED, METRO_PINK )
      oSay2:Update()
      oSay2:Refresh()      
      oFld:aDialogs[1]:Refresh()
      oFld:aDialogs[1]:Update()
      oFld1:aDialogs[1]:Refresh()
      oFld1:aDialogs[1]:Update()      
   ENDIF     

   oSay:Refresh()
   lStatus = ! lStatus

RETURN Nil
 
Sergio Vacarezza S.
Programador Freelance
sergio@vacarezza.cl
Santiago, Chile

xHarbour 1.2.3 - FWH 13.08 - Advantage 10.1
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Cambiar Color de Fondo de un SAY en un TFolderEx

Post by karinha »

Original: \SAMPLES\TESTFX8.PRG

Intenta con este ejemplo y comente. TESTFX8.PRG cambiado/modificado.

Code: Select all

#include "FIVEWIN.CH"

STATIC oDlg, oSay, oSay2
 
FUNCTION MAIN()
 
   local oFld1, oBtn, oCheck
    local lCheck := .f.
 
   DEFINE DIALOG oDlg RESOURCE "DIALOG0"
 
   REDEFINE FOLDEREX oFld1 ID 110 OF oDlg;
        PROMPT "&Clipper", "&Windows" DIALOGS "Sub1", "Sub2"
 
    REDEFINE SAY oSay  ID 1001 OF oFld1:aDialogs[1] UPDATE

    REDEFINE SAY oSay2 ID 1004 OF oFld1:aDialogs[1] UPDATE

    oSay2:Disable()
 
    REDEFINE CHECKBOX oCheck VAR lCheck ID 1003 OF oFld1:aDialogs[1]
 
    REDEFINE BUTTON oBtn ID 1002 OF oFld1:aDialogs[1];
             ACTION ChangeColor( oFld1 )

    //    ACTION ( oSay2:Enable()) // oFld:aDialogs[1]:Refresh()
 
    ACTIVATE DIALOG oDlg CENTERED
 
return nil

//----------------------------------------------------------------------------//

FUNCTION ChangeColor( oFld1  )

   STATIC lStatus := .F.
   
   IF lStatus

      oSay:SETCOLOR( CLR_BLUE, CLR_HRED  )

   ELSE

      oSay:SETCOLOR( CLR_HRED, CLR_WHITE )

   ENDIF     

   oSay:Refresh()
   oSay:UpDate()
   oFld1:Refresh()
   oFld1:UpDate()
   oFld1:SetOption( 2 )
   oDlg:UpDate()
   oFld1:SetOption( 1 )

   lStatus = ! lStatus

RETURN Nil
 
João Santos - São Paulo - Brasil
User avatar
checo176
Posts: 46
Joined: Wed Apr 20, 2011 3:08 pm

Re: Cambiar Color de Fondo de un SAY en un TFolderEx

Post by checo176 »

karinha:

Gracias por tu ayuda, Tienes el Archivo de Recursos para ese ejemplo??
Sergio Vacarezza S.
Programador Freelance
sergio@vacarezza.cl
Santiago, Chile

xHarbour 1.2.3 - FWH 13.08 - Advantage 10.1
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Cambiar Color de Fondo de un SAY en un TFolderEx

Post by karinha »

Si, está en: \SAMPLES\TESTFX8.RC
João Santos - São Paulo - Brasil
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Cambiar Color de Fondo de un SAY en un TFolderEx

Post by karinha »

TESTFX8.RC

Code: Select all

DIALOG0 DIALOGEX 44,23,315,171
FONT 8,"MS Sans Serif"
LANGUAGE 7,1
STYLE WS_POPUP|WS_VISIBLE|WS_CAPTION|WS_SYSMENU|DS_MODALFRAME|DS_3DLOOK
BEGIN
  CONTROL "",110,"TFOLDEREX",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP,4,5,305,163
END

sub1 DIALOGEX 18,18,264,159
FONT 8,"MS Sans Serif"
LANGUAGE 7,1
STYLE WS_CHILDWINDOW|WS_VISIBLE|DS_3DLOOK
BEGIN
  CONTROL "Text",101,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_GROUP|WS_TABSTOP|BS_AUTORADIOBUTTON,24,33,28,12
  CONTROL "this is a Label 1 with Information",1001,"Static",WS_CHILDWINDOW|WS_VISIBLE,24,60,165,9
  CONTROL "Click me",1002,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP,57,102,54,15
  CONTROL "Checkbox",1003,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|BS_AUTOCHECKBOX,27,15,54,9
  CONTROL "this is a Label 2 with Information",1004,"Static",WS_CHILDWINDOW|WS_VISIBLE,24,75,168,9
END

sub2 DIALOGEX 18,18,273,150
FONT 8,"MS Sans Serif"
LANGUAGE 7,1
STYLE WS_CHILDWINDOW|WS_VISIBLE|DS_3DLOOK
BEGIN
  CONTROL "Text",102,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_GROUP|WS_TABSTOP|BS_AUTORADIOBUTTON,37,30,28,12
  CONTROL "Label 2",1001,"Static",WS_CHILDWINDOW|WS_VISIBLE,39,60,54,9
END
 
João Santos - São Paulo - Brasil
Post Reply