Cambiar Color de Fondo de un SAY en un TFolderEx

Cambiar Color de Fondo de un SAY en un TFolderEx

Postby checo176 » Mon Oct 26, 2015 3:19 am

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


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

Harbour 3.2.0dev (r2006301601) - FWH 22.03 - MariaDB - FivEdit
User avatar
checo176
 
Posts: 80
Joined: Wed Apr 20, 2011 3:08 pm

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

Postby Antonio Linares » Mon Oct 26, 2015 11:08 am

Sergio,

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

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

Postby checo176 » Mon Oct 26, 2015 2:42 pm

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  Expand view

// 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

Harbour 3.2.0dev (r2006301601) - FWH 22.03 - MariaDB - FivEdit
User avatar
checo176
 
Posts: 80
Joined: Wed Apr 20, 2011 3:08 pm

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

Postby Antonio Linares » Mon Oct 26, 2015 3:30 pm

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
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

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

Postby checo176 » Mon Oct 26, 2015 3:56 pm

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  Expand view

#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

Harbour 3.2.0dev (r2006301601) - FWH 22.03 - MariaDB - FivEdit
User avatar
checo176
 
Posts: 80
Joined: Wed Apr 20, 2011 3:08 pm

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

Postby karinha » Mon Oct 26, 2015 5:25 pm

Que tal?

Code: Select all  Expand view

// 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 - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

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

Postby karinha » Mon Oct 26, 2015 5:26 pm

Code: Select all  Expand view

#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 - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

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

Postby Antonio Linares » Mon Oct 26, 2015 6:21 pm

Sergio,

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

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

Postby checo176 » Mon Oct 26, 2015 6:25 pm

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

Harbour 3.2.0dev (r2006301601) - FWH 22.03 - MariaDB - FivEdit
User avatar
checo176
 
Posts: 80
Joined: Wed Apr 20, 2011 3:08 pm

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

Postby karinha » Mon Oct 26, 2015 6:29 pm

Comprendo. Creo que por encuanto, talvez sea mejor usar SSAY.PRG ó DSAY.PRG. Intente y comente. saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

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

Postby checo176 » Tue Oct 27, 2015 12:12 am

karinha,

Gracias por tu idea, efectué los cambios 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  Expand view
#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

Harbour 3.2.0dev (r2006301601) - FWH 22.03 - MariaDB - FivEdit
User avatar
checo176
 
Posts: 80
Joined: Wed Apr 20, 2011 3:08 pm

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

Postby karinha » Tue Oct 27, 2015 1:58 pm

Original: \SAMPLES\TESTFX8.PRG

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

Code: Select all  Expand view

#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 - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

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

Postby checo176 » Tue Oct 27, 2015 2:06 pm

karinha:

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

Harbour 3.2.0dev (r2006301601) - FWH 22.03 - MariaDB - FivEdit
User avatar
checo176
 
Posts: 80
Joined: Wed Apr 20, 2011 3:08 pm

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

Postby karinha » Tue Oct 27, 2015 2:22 pm

Si, está en: \SAMPLES\TESTFX8.RC
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

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

Postby karinha » Tue Oct 27, 2015 2:26 pm

TESTFX8.RC

Code: Select all  Expand view

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 - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 60 guests