![]() |
Transparenz eines Fensters einstellen
Hallo mal wieder,
war ja lange Zeit nicht mehr da. Ich möchte gerne die Transparenz von einer Form einstellen. Nur wie? Ich besitze Delphi 7 Personal. Bisher, wenn ich wollte, habe ich das Fenster total transparent bekommen indem ich form.color:=clblack; form.transparency:=true; und die transparenzfarbe:=clblack gesetzt habe. Aber dann ist die Opazität ja 100%. Wie bekomme ich z.b. 50 % hin? Danke für alle Antworten, Moritz |
Re: Transparenz eines Fentsters einstellen
Delphi-Quellcode:
Das ist die Lösung ;)
Form1.Alphablend := true;
Form1.AlphaBlendValue := 100; // 0-255 Gruß Neutral General |
Re: Transparenz eines Fensters einstellen
Das läuft aber nicht in allen Windows-Systemen.
Der folgende Code sollte das besser erledigen:
Delphi-Quellcode:
Du kannst damit auch Dialoge transparent machen:
unit trans;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; procedure MakeTransparent(AHandle : THandle; AValue : byte = 0); implementation type TSetLayeredWindowAttributes = function ( hwnd : HWND; crKey : TColor; bAlpha : byte; dwFlags : DWORD ): BOOL; stdcall; const WS_EX_LAYERED = $80000; LWA_COLORKEY = 1; LWA_ALPHA = 2; procedure MakeTransparent(AHandle : THandle; AValue : byte = 0); var Info: TOSVersionInfo; SetLayeredWindowAttributes: TSetLayeredWindowAttributes; begin Info.dwOSVersionInfoSize := SizeOf(Info); GetVersionEx(Info); if (Info.dwPlatformId = VER_PLATFORM_WIN32_NT) and (Info.dwMajorVersion >= 5) then begin SetLayeredWindowAttributes := GetProcAddress(GetModulehandle(user32),'SetLayeredWindowAttributes'); if Assigned(SetLayeredWindowAttributes) then begin SetWindowLong(AHandle, GWL_EXSTYLE, GetWindowLong(AHandle, GWL_EXSTYLE) or WS_EX_LAYERED); SetLayeredWindowAttributes(AHandle, 0, AValue, LWA_ALPHA); end; end; end; end. uses ..., trans; procedure TForm1.FormCreate(Sender: TObject); begin MakeTransparent(Handle, 120); end;
Delphi-Quellcode:
procedure TForm1.FontDialogShow(Sender: TObject);
begin MakeTransparent(FontDialog.Handle, 100); end; |
Re: Transparenz eines Fensters einstellen
wow vielen dank klappt super :D
THX |
Re: Transparenz eines Fensters einstellen
Zitat:
|
Re: Transparenz eines Fensters einstellen
Wie kann man es bei allen Systemen zum laufen bringen ?
|
Re: Transparenz eines Fensters einstellen
Gar nicht, Transparentz wird erst ab Win 2000 unterstützt. Um Transparenz bei Win 95..98 zu bekommen kan man nur trixen und das bild der der Form mit den daunter liegenden Elementen Blenden (programier und rechenaufwendig). Was geht sind Unförmige Formen ;) , dazu hab ich hier irgend wo schon mal was geposted.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz