![]() |
Transparente Form
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich nutze für ein Programm einén Bootbildschirm, welches ein transparentes Form sein soll. Klappt in den meisten Fällen auch wunderbar, doch irgendwie habe ich 2 komische Erscheinungen. Ich habe als transparente Farbe clLime definiert. Das Anzeigen der Form klappt wie gewollt. Nach dem Anzeigen verbindet sich mein Programm zu einer Online Datenbank, was mal einige Sekunden dauern kann. Ab und zu wechselt mein transparentes Form dann jedoch zu einem ganz normalen Fenster, und dieses hässliche Grün erscheint wieder als Hintergrund (siehe Attachment). Das zweite Problem hängt irgendwie mit dem ersten zusammen. Denn nach dem Connecten mit der Datenbank versuche ich wieder das Bootfenster zu schliessen, jedoch tuts das nicht immer. Woran kann das liegen. Wie gesagt, in den meisten Fällen klappts, jedoch manchmal scheint dieses Fenster ein Eigenleben zu entwickeln. |
Re: Transparente Form
SetLayeredWindowAttributes() ist dein Freund LWA_COLORKEY
und im OnFormCreate
Delphi-Quellcode:
ich hoff ich hab getz nix verwürfelt
var
iStyleEx: cardinal; begin iStyleEx := GetWindowLong(Handle, GWL_EX_STYLE); iStyleEx := iStyleEx or WS_EX_TRANSPARENT; SetWindowLong(Handle, GWL_EX_STYLE, iStyleEx); end; |
Re: Transparente Form
Hmm, "Undeclared identifier: GWL_EX_STYLE"
Welche Unit muss ich denn einbinden? Und was hat das mit dem SetLayeredWindowAttributes auf sich. Ich kann dazu auch keine Hilfe finden. |
Re: Transparente Form
Delphi-Quellcode:
heißen, sry
var
iStyleEx: cardinal; begin iStyleEx := GetWindowLong(Handle, GWL_EXSTYLE); iStyleEx := iStyleEx or WS_EX_LAYERED; SetWindowLong(Handle, GWL_EXSTYLE, iStyleEx); end; und SetLayeredWindowAttributes(Handle, clLime, 0, LWA_COLORKEY); <msdn>
Delphi-Quellcode:
</msdn>
function SetLayeredWindowAttributes(
// Handle to the layered window. Wnd: hwnd; // Pointer to a COLORREF value that specifies the transparency // color key to be used when composing the layered window crKey: ColorRef; // Alpha value used to describe the opacity of the layered window Alpha: Byte; // Specifies an action to take // LWA_COLORKEY or LWA_ALPHA // This parameter can be one or more of the following values: dwFlags: DWORD): Boolean; stdcall; external 'user32.dll'; [edit]blubb, thx freak[/edit] |
Re: Transparente Form
*barf00s ein Paar CodeTags schenkt* :mrgreen:
MfG freak |
Re: Transparente Form
Danke euch beiden, die Lösung scheint bis jetzt einwandfrei zu klappen. :thumb:
|
Re: Transparente Form
Also nach mehrmaligem Testen bleibt das Phänomen dennoch erhalten. Die Hintergrundfarbe scheint wieder durch und die Form wieder nicht auf Wunsch geschlossen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:26 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 by Thomas Breitkreuz