Page 1 of 1
Clausula TRANSPARENT no funciona en GROUP
Posted: Fri Jan 24, 2025 8:40 pm
by leandro
Hola buenas tardes para todos
Estamos intentando definir un GROUP desde recursos, pero la clausula transparent no funciona correctamente, creo que cabe aclarar que el group esta a su vez montado sobre un folder.
En muchas partes del programa usamos los group desde recursos, nunca los REDEFINIMOS y funcionan bien, pero en este caso es necesario, por que en algunas ocasiones vamos a necesitar hacer oGroup:hide().
Code: Select all | Expand
REDEFINE GROUP oGgrRt ID 4007 OF oFld:aDialogs[ 2 ] TRANSPARENT
Gracias de antemano.
Re: Clausula TRANSPARENT no funciona en GROUP
Posted: Sat Jan 25, 2025 6:06 pm
by karinha
Como usted estás haciendo?
Mustre el código y el .RC, pls.
Regards, saludos.
Re: Clausula TRANSPARENT no funciona en GROUP
Posted: Sat Jan 25, 2025 6:46 pm
by karinha
Leandro prueba asi, porfa:
Code: Select all | Expand
// C:\FWH\SAMPLES\LEANDGRP.PRG
#include "FiveWin.ch"
FUNCTION Main()
LOCAL oDlg, oFont, oBold, aVar[ 2 ], cTitle
AFill( aVar, Space( 60 ) )
cTitle := "GROUPBOX con xHarbour de 64 bits - Funciona?"
DEFINE FONT oFont NAME "ARIAL" SIZE 0, - 14
DEFINE FONT oBold NAME "ARIAL" SIZE 0, - 14 BOLD
DEFINE DIALOG oDlg SIZE 500, 250 PIXEL TRUEPIXEL TITLE cTitle FONT oFont ;
TRANSPARENT
oDlg:lHelpIcon := .F.
@ 70, 50 GET aVar[ 1 ] SIZE 200, 20 PIXEL OF oDlg
@ 100, 50 GET aVar[ 2 ] SIZE 200, 20 PIXEL OF oDlg
oDlg:bPainted := < | hDC |
RoundBox( hDC, 20, 40, 300, 150, 10, 10, CLR_HRED, 1 )
oDlg:SayText( "Group Title-64 bits", { 30, 30, 50, 200 }, NIL, oBold, ;
{ CLR_GREEN, oDlg:nClrPane } )
RETURN NIL
>
@ 200, 200 BUTTON "Ok" SIZE 50, 20 OF oDlg PIXEL ;
ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTERED
RELEASE FONT oFont, oBold
RETURN NIL
Regards, saludos.
Re: Clausula TRANSPARENT no funciona en GROUP
Posted: Sat Jan 25, 2025 11:30 pm
by Antonio Linares
Leandro,
Si lo que necesitas es ocultarlo a veces, solamente, esto se puede hacer aunque no esté redefinido.
Se busca el control por su ID y se le da la orden de ocultarse:
#define SW_HIDE 0
local hWndControl := GetDlgItem( oDlg:hWnd, ID_GROUP )
ShowWindow( hwndControl, SW_HIDE )
Recuerda que esto debes hacerlo desde la claúsula ON INIT del diálogo para que los handles tanto del diálogo como del control existan