PDA

Ver la Versión Completa : Form transparente multimagen


lag_0
08-10-2006, 21:28:56
Buenaaaaaaaaaaaaaas
No encuentro nada ni consigo hacer un formulario transparente que no sea solo con una TImage sino con varias no lo consigo!

A ver si alguien me ayuda!
Graciasssssssssss

seoane
08-10-2006, 21:57:35
Antes de nada :confused: ¿que método estas usando?. Lo digo por la diferencia entre una y varias imágenes. De todas formas, existen varias soluciones, una es utilizar las propiedades TransparentColor y TransparentColorValue, pero eso depende de la versión de delphi que uses. Otra solución es usar solo funciones de la API. Básicamente sumamos el rectángulo de cada uno de los TImage en una sola región y la establecemos como la región del formulario.


procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
Rgn1, Rgn2: HRgn;
begin
BorderStyle:= bsNone;
Rgn1:= CreateRectRgn(0,0,0,0);
for i:= 0 to ControlCount - 1 do
if Controls[i] is TImage then
with TImage(Controls[i]) do
begin
Rgn2:= CreateRectRgnIndirect(BoundsRect);
CombineRgn(Rgn1,Rgn1,Rgn2,RGN_OR);
DeleteObject(Rgn2);
end;
SetWindowRgn(Handle,Rgn1,TRUE);
DeleteObject(Rgn1);
end;

lag_0
08-10-2006, 22:57:24
no me va ese codigo y las imagenes por defecto cojen otro color como transparente pero luego hago:
for TempI := 1 to 3 do begin
with TImage(FindComponent('Image'+IntToStr(TempI))).Picture.Bitmap do begin
TransparentColor := clRed;
TransparentMode := tmFixed;
end;
end;

y listo, pero... no consigo adaptar ningún codigo a lo que quiero: que el form sea ivnisible donde las imagenes sean clRed, psea el Transparent Color...
Puedo hacerlo con una pero no con varias... y es que no sé como funcionan los paints.. a ver si me ayudais..

Lepe
09-10-2006, 23:08:41
Si "no te va ese código" deberías decir por qué no.

Errores de compilacion
Errores de dibujado
etc

Es decir, explicar un poco más los fallos que te dá.

Saludos

lag_0
09-10-2006, 23:44:34
Simplemente no va.
El error es de programación o de utilización, pero no lo consigo hacer funcionar...
A ver si alguien me ayuda por que yo no lo saco :p

lag_0
10-10-2006, 00:25:02
LOOOOOOOOOOOOOOL
simplemente no se me ocurrió pasar de tanta mierda y simplemente hacer:
Form1.TransparentColor:=True;
Form1.TransparentCOlor:=clRed;
Form1.Color:=clRed;
(Con las Timage transparentes)

y...
Formulario transparente :D