Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Ventanas transparentes mal dibujadas (https://www.clubdelphi.com/foros/showthread.php?t=12005)

SMTZ 01-07-2004 21:10:50

Ventanas transparentes mal dibujadas
 
Hola, tengo una ventana transparente (Brush.Style := bsClear) y con la propiedad "FormStye = stayontop" para que la ventana siempre esté por encima de cualquier otra ventana. El caso es que cuando centro el foco en otra ventana de otra aplicación distinta y luego vuelvo a centrar el foco en mi ventana, la ventana de mi aplicación se redibuja mal porque, puesto que el fondo es transparente se ve como fondo la aplicación anterior (aunque la minimice y la redibuje con Form1.Repaint), ¿alguien sabe cómo puedo solucionarlo?

Gracias.

Amilius 02-07-2004 22:13:20

Tienes que usar regiones, ya sean elípticas, rectangulares o mejor las poligonales. :)

Creo que existe otro post algo parecido para una región cuadrada con bordes redondeados. :rolleyes:

Ejemplo para poligonal:

Código Delphi [-]
 
type TPoligonoN=array[0..30] of Tpoint;
const POLIGONO_1:TPoligonoN=(
(x:0;y:0),(x:41;y:32),(x:63;y:30),(x:87;y:35),(x:127;y:1),(x:119;y:65),(x:127;y:85),
(x:127;y:104),(x:119;y:130),(x:127;y:137),(x:112;y:139),(x:127;y:157),(x:101;y:149),
(x:116;y:167),(x:87;y:157),(x:80;y:160),(x:80;y:179),(x:73;y:191),(x:62;y:191),
(x:53;y:180),(x:52;y:161),(x:41;y:157),(x:17;y:170),(x:28;y:151),(x:0;y:158),
(x:16;y:139),(x:0;y:140),(x:10;y:129),(x:0;y:107),(x:0;y:85),(x:8;y:65)
);
 
var
poligono:TPoligonoN;
regGl:HRGN;
 
...
//En el oncreate:
 
poligono:=POLIGONO_1;
regGl:=CreatePolygonRgn(poligono,31,ALTERNATE);//poligonal
SetWindowRgn(self.handle,regGl,false);//self se refiere al Form, false=no redibujar la ventana por cambiar la región.


La franja horaria es GMT +2. Ahora son las 12:54:28.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi