Einzelnen Beitrag anzeigen

Benutzerbild von City Light
City Light

Registriert seit: 17. Sep 2002
314 Beiträge
 
#3

Re: Form Transparent aber Komponenten sichtbar?

  Alt 31. Jan 2006, 20:47
Delphi-Quellcode:
{
Dieses Beispiel macht ein Fenster zur Laufzeit transparent.
Sichtbar bleiben die Titelleiste und alle visuellen
Komponenten auf dem Fomular. Soll das Fenster gleich schon
zu Beginn transparent sein, muß dieser Quelltext im
OnCreate-Ereignis des Formluars aufgerufen werden.
}


procedure TForm1.Button1Click(Sender: TObject);
var
FormRegion,TempRegion: hRgn;
I: Integer;
Rect: TRect;
begin
FormRegion := 0;
for I := 0 to ControlCount - 1 do begin
Rect := Controls[I].BoundsRect;
OffsetRect(Rect, ClientOrigin.X - Left, ClientOrigin.Y - Top);
TempRegion := CreateRectRgnIndirect(Rect);
if FormRegion = 0 then
FormRegion := TempRegion
else begin
CombineRgn(FormRegion, FormRegion, TempRegion, RGN_OR);
DeleteObject(TempRegion);
end;
end;
TempRegion := CreateRectRgn(0, 0, Width,
GetSystemMetrics(SM_CYCAPTION) +
GetSystemMetrics(SM_CYSIZEFRAME) +
GetSystemMetrics(SM_CYMENU) *
Ord(Menu <> NIL));
CombineRgn(FormRegion, FormRegion, TempRegion, RGN_OR);
DeleteObject(TempRegion);
SetWindowRgn(Handle, FormRegion, True);
end;
Bis bald man liest sich
Tino
  Mit Zitat antworten Zitat