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().

Image

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

Re: Clausula TRANSPARENT no funciona en GROUP

Posted: Tue Jan 28, 2025 8:52 pm
by leandro
Ok Antonio, muchas gracias, voy hacer algunas pruebas y comento.