![]() |
AW: ListBox TopLevel
Zitat:
ListBox1.BringToFront; Your_Other_Controls.SendToBack; MfG, Terence |
AW: ListBox TopLevel
Ich weise nochmal darauf hin.
Zitat:
Werde das Thema deshalb aus meinen Abonnierten Themen entfernen. gruss |
AW: ListBox TopLevel
Ok hier ist die Lösung falls es mal jemand braucht.
Delphi-Quellcode:
Das wars.
WM_LBUTTONDOWN:
// Die ListBox mit deren Handle auf den Desktop legen SetParent(WinHandle, GetDesktopWindow); //(alternativ für GetDesktopWindow einfach 0) //TopMost festlegen um das TopLEvel Window zu erhalten Skinengine.SetZorder(WinHandle, HWND_TOPMOST); //Mouse Event Aufnehmen damit die Mausmessagen an die Layered ListBox weitergereicht werden. SetCapture(WinHandle); //Layered Attribute für die ListBox setzen Skinengine.SetLayeredAlpha(WinHandle, 175); .... WM_LBUTTONUP: //Layered Style entfernen sonst sieht man die ListBox nicht mehr. (Child kann kein Layered Window haben) OldStyle := GetWindowLong(WinHandle, GWL_EXSTYLE); SetWindowLong(WinHandle, GWL_EXSTYLE, OldStyle and (not WS_EX_LAYERED)); //MouseEvents für die ListBox freigeben ReleaseCapture; // Vom Desktop zurück in die Hauptanwendung SetParent(WinHandle, HParent); // ListBox positionieren SetWindowPos(WinHandle, HWND_TOP, FLeft, FTop, FWidth - FLeft, FHeight, SWP_NOACTIVATE); Und das Ergebnis! Die ListBox ist jetzt TopLevel (geht über die MainForm hinaus und transparent.) gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 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