Hola Antonio,
En algunos casos utilizo brushs (con bmps o AlphaBitmaps), en otros colores, en otros la Clase TSTSay del maestro Manuel Mercado, en otros casos Groups con captions, etc., etc., etc. En general, la cláusula TRANSPARENT en los diálogos es casi que indispensable, salvo que sea un diálogo super-super sencillo.
El problema es que en todas mis aplicaciones y desarrollos especiales a clientes, por aquello de mejorar el look, incluyo intensivamente diálogos con TRANSPARENT.
Todo estuvo perfecto hasta la versión FWH 8.05. Ahora, que utilizo FWH 8.07, cada vez que tengo que tocar una aplicación por algún ajuste, cambio o adición (y esto es con frecuencia por solicitud de los clientes), al recompilarla salta el problema de la estética en los radios. Si quito la clausula TRANSPARENT los radios pintan bien, pero algunos de los otros controles dejan de tomar como fondo el color o el brush (según sea el caso), de los diálogos. Lo mismo pasa con TFolder y TPanel. Seguro que fue algún cambio que hiciste relacionado con TRANSPARENT en Diálogos que está ocasionando este comportamiento.
Por lo pronto, y como emergencia para los modificaciones que he tenido que hacerle a un cliente, he hecho lo siguiente en aquellos diálogos que tengo definidos desde recursos y en los que tengo algunos radios con su ID y algunos SAY que son simples textos y que no necesitan ID por lo que están identificados como -1.
A estos says si no tienen ID al pintar el diálogo sin TRANSPARENT les pinta mal el fondo, pero en cambio PINTA BIEN LOS RADIOS.
Si le pongo TRANSPARENT pinta BIEN LOS SAYS pero MAL LOS RADIOS.
Entonces, dejé los diálogos sin TRANPARENT y antes del ACTIVATE DIALOG puse:
- Code: Select all Expand view
For i:=1 TO Len(oDlg:aControls)
if oDlg:aControls[i]:ClassName()=="TSAY"
oDlg:aControls[i]:lTransparent:=.T.
endif
next
Solución chapucera, pero me sacó del apuro. Pero, comprenderás, mortal si tengo que tomar todas las aplicaciones, y todos sus diálogos para hacer este modificación. Además se complica con otros controles.
Es posible revertir ese cambio. ? Cómo lo hago ?
Saludos y gracias,
Carlos Gallego