FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour colorear fondo de un control grupo
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
colorear fondo de un control grupo
Posted: Tue Sep 20, 2016 04:00 AM
Estimados,
Por que desaparecen los controles como los gets y botones cuando coloreo el fondo del grupo en ejecucion

Adjunto pantallas
Antes de pintar


Despues de ordenar el pintado de color amarillo ... como se puede apreciar hay controles que desaperecen



Codigo fuente
Code (fw): Select all Collapse
   DEFINE DIALOG oDlgDet RESOURCE "DLG_CABGuia" TITLE "Nota de Pedido" FONT oFontS

   REDEFINE GROUP oGrupo ID 4001 OF oDlgDet TRANSPARENT

   REDEFINE GET oGet VAR oDbf:Fecha ID 100 OF oDlgDet

   REDEFINE GET oGet VAR nNumero ID 104 OF oDlgDet UPDATE
   oGet:Disable()

   REDEFINE GET oGet VAR oDbf:Ruc ID 109 OF oDlgDet UPDATE;
           VALID valCodCli(oDlgDet, oDbf) COLOR CLR_BLACK,CLR_HCYAN
   REDEFINE BUTTON oBtn ID 300 OF oDlgDet                 ;
           ACTION ( aDatos := BrwProveedores("C", 2, .F.) ;
                   ,oDbf:Ruc   := IIF(aDatos[1]==nil, space(11), Left(aDatos[1],11));
                   ,oDbf:CodUbi:= Right(aDatos[1],3)      ;
                   ,cNomCli:= aDatos[2]                   ;
                   ,cDirecc:= aDatos[3]                   ;
                   ,iif(mcodi->de="*",colorear(oGrupo, oDlgDet), descolorear(oGrupo,nC1,nC2) ) ;  //condicion para llamar a la funcion colorear
                   ,oDlgDet:UPDATE()                      ;
                   ,oGet4:SetFocus()  )

   REDEFINE SAY oSay PROMPT cNomCli ID 110 OF oDlgDet UPDATE TRANSPARENT

   REDEFINE SAY oSay PROMPT cDirecc ID 102 OF oDlgDet UPDATE

   REDEFINE GET oGet4 VAR oDbf:CodVen ID 122 OF oDlgDet UPDATE ;
           VALID valCodVen(oDlgDet, oDbf)
   REDEFINE BUTTON oBtn ID 303 OF oDlgDet                     ;
           ACTION ( aDatos := BrwPersona("V", 2, .F.)     ;
                   ,oDbf:CodVen:= IIF(aDatos[1]==nil, space(3), aDatos[1]);
                   ,cVende := aDatos[2]                   ;
                   ,oDlgDet:UPDATE()                      ;
                   ,oGet5:SetFocus()  )

   REDEFINE SAY oSay PROMPT cVende ID 118 OF oDlgDet UPDATE
   oGet:Disable()

   REDEFINE GET oGet5 VAR cMnda ID 111 PICTURE '!' OF oDlgDet UPDATE ;
   VALID (cMnda=='S' .OR. cMnda=='D')
   IIF( lModo, oGet5:Enable(), oGet5:Disable() )

   REDEFINE GET oGet2 VAR nCambio ID 101 OF oDlgDet UPDATE PICTURE '9.999' ;
   valid Valcambio(cmnda, ncambio, lmodo)

   ACTIVATE DIALOG oDlgDet CENTERED

Static function colorear(oGroup, oDlg)
   bBLQ:={||aColor:={oGroup:nClrPane,oGroup:nClrText},;
            aSize :={oGroup:nWidth  ,oGroup:nHeight },;
            oGroup:nWidth:=0,oGroup:nHeight:=0,;
            oGroup:Refresh(),;
            oGroup:SETCOLOR(CLR_RED, CLR_YELLOW),;
            oGroup:SETSIZE(aSIZE[1],aSIZE[2]),;
            oGroup:Refresh()}
            oDlg:Update()

   EVAL(bBLQ)

Return nil
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: colorear fondo de un control grupo
Posted: Tue Sep 20, 2016 10:41 AM

Prueba a llamar a oDlg:Refresh() despues de llamar a oDlg:Update()

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
Re: colorear fondo de un control grupo
Posted: Wed Sep 28, 2016 08:57 PM

Hola Antonio
estoy usando FVH13.01 y ahora ya no se pinta de colores como si lo hacia fwh8.11, que estoy haciendo mal

fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: colorear fondo de un control grupo
Posted: Thu Sep 29, 2016 01:33 PM
Very good!

Code (fw): Select all Collapse
// Testing Groups - \SAMPLES\TESTGRP.PRG AND TESTGRP.RC - Modified.

#include "FiveWin.ch"
#include "WColors.ch"

FUNCTION Main()

   LOCAL oDlg, oBrush, oFont, cText := "Hello", oGroup

   DEFINE BRUSH oBrush FILE "..\bitmaps\bricks.bmp"

   DEFINE FONT oFont NAME 'MS Sans Serif' SIZE 0, -10 BOLD

   DEFINE DIALOG oDlg NAME "Test" BRUSH oBrush

   oDlg:lHelpIcon := .F.

   REDEFINE GET cText ID 102 OF oDlg

   REDEFINE GROUP oGroup ID 101 COLOR GetSysColor( COLOR_HIGHLIGHT ) OF oDlg ;
            FONT oFont PROMPT "Modified Group Caption"

   REDEFINE BUTTON ID 103 OF oDlg ACTION( oDlg:End() ) CANCEL

   ACTIVATE DIALOG oDlg ON INIT( COLOREAR( oGroup, oDlg ) )

   RELEASE BRUSH oBrush
   RELEASE FONT oFont

RETURN NIL

FUNCTION COLOREAR(oGroup, oDlg)

   LOCAL bBLQ, aColor, aSize

   bBLQ := { || aColor:={oGroup:nClrPane,oGroup:nClrText}, ;
                aSize :={oGroup:nWidth  ,oGroup:nHeight }, ;
                oGroup:nWidth:=0,oGroup:nHeight:=0,        ;
                oGroup:Refresh(),                          ;
                oGroup:SETCOLOR( CLR_HRED, CLR_HBLUE ),    ;
                oGroup:SETSIZE(aSIZE[1],aSIZE[2]),         ;
                oGroup:Refresh() }

                oDlg:Refresh()

   EVAL(bBLQ)

RETURN NIL


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341

Continue the discussion