colorear fondo de un control grupo

colorear fondo de un control grupo

Postby artu01 » Tue Sep 20, 2016 4: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
Image

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


Codigo fuente
Code: Select all  Expand view

   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
artu01
 
Posts: 399
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: colorear fondo de un control grupo

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

Re: colorear fondo de un control grupo

Postby artu01 » Wed Sep 28, 2016 8: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
artu01
 
Posts: 399
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: colorear fondo de un control grupo

Postby karinha » Thu Sep 29, 2016 1:33 pm

Very good!

Code: Select all  Expand view

// 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
User avatar
karinha
 
Posts: 7613
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot], Willi Quintana and 50 guests