Page 1 of 1

Problema con transparencias en control SAY desde código

PostPosted: Fri Oct 12, 2018 3:15 pm
by gsabattino
Saludos a todos los colegas del Foro...

Les traigo un caso que se me está presentando con la transparencia en un control SAY creado desde código y que está dentro de un control GROUP que también tiene la cláusula de transparencia...
Image

como pueden ver cuando actualizo el contenido del control por medio del método oSay:SetText() no borra lo anterior sino que monta el contenido nuevo encima del anterior...

El código es este:
Code: Select all  Expand view

@ nRow+24, nCol   SAY       ::oSayDMater  VAR cSayDMater;
                  OF        ::oGrpMater;
                  CENTERED  ;
                  SIZE      314, 14;
                  PIXEL     ;
                  FONT      oControl:oFontAr12;
                  TRANSPARENT
 

Inclusive, mandando a rellenar con espacios antes de colocar el dato nuevo, no hay ninguna diferencia en el resultado...
oSay:SetText( space( 120 ) )
oSay:SetText( cSayDMater )

si le quito la clausula de transparencia al control SAY si funciona como se espera (sustituyendo el nuevo dato por el anterior), pero se ve un recuadro que echa a perder la estética...
Image

me he devanado los sesos buscando dentro de las clase Windows, Control, etc, algo que me ayude a encontrar una solucion pero hasta el momento no he tenido exito...

Será que alguien acá ha pasado por una situación similar y tiene el problema resuelto???
Agradezco de antemano cualquier comentario que me ayude.

Giancarlo Sabattino
Valencia - Venezuela

FW1312/xHarbour 1.2001/BCC5.51

Re: Problema con transparencias en control SAY desde código

PostPosted: Fri Oct 12, 2018 7:09 pm
by nageswaragunupudi
I tried to reproduce your problem, but I could not. For me everything is working correctly.
This is the program I used for testing.
Code: Select all  Expand view
#include "fivewin.ch"

function Main()

   local oDlg, oFont, oGrp, oSay, aClr
   local aText := { "Short Text", "This is a longer text than the first" }
   local nText := 1

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-20
   DEFINE DIALOG oDlg SIZE 450, 150 PIXEL TRUEPIXEL FONT oFont COLOR CLR_WHITE,CLR_GREEN

   @  40,100 GROUP oGrp TO 100,350 PIXEL OF oDlg TRANSPARENT

   @  60,120 SAY oSay PROMPT aText[ nText ] SIZE 210,26 PIXEL OF oDlg CENTER TRANSPARENT

   @  50,370 BUTTON "Text" SIZE 60,50 PIXEL OF oDlg ;
      ACTION ( nText := nXor( nText, 3 ), oSay:SetText( aText[ nText ] ) )

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

return nil


Image

I am really interested in reproducing your problem and finding a solution for it.
Can you please modify my above sample to reproduce your problem?