![]() |
Transparente Bereiche werden nicht aktualisiert
Hallo,
ich habe ein transparentes Panel, welches weitere Controls enthält. Der Hintergrund wird auch schön durchgezeichnet, bis auf einen kleinen Fehler: Sobald das Panel per Code verschoben wird, wandert der transparente Bereich mit, als wenn er ausgeschnitten worden wäre! Ein Panel.Refresh oder Repaint bringt gar nichts, ich behelfe mir momentan damit, das Panel vor dem Schieben unsichtbar zu machen und danach wieder visible zu setzen, dann ist der durchscheinende Hintergrund wieder korrekt. Nur gefällt mir das nicht, es muss doch eine Möglichkeit geben, diesen Hintergrund zu "repainten"? Ciao Stefan |
AW: Transparente Bereiche werden nicht aktualisiert
Zitat:
Zitat:
Das must du selber tun. gruss |
AW: Transparente Bereiche werden nicht aktualisiert
Zitat:
|
AW: Transparente Bereiche werden nicht aktualisiert
Arbeitest Du mit mit der VCL?
Es gibt da keine wirklich transparenten Controls. Wenn Du das einigermaßen umsetzen kannst wird der Hintergrund letztlich in das Panel kopiert. Wenn Du das Panel dann verschiebst, sieht das aus wie ausgeschnitten (ist es ja auch). Wie man das am besten heilt kann ich nicht sagen und es kann auch auf jedem System und jeder Delphi-Version wieder etwas anders (besser/schlechter) funktionieren. Mit FMX könnte das vielleicht besser gehen, aber da gibt es wieder andere Nachteile. |
AW: Transparente Bereiche werden nicht aktualisiert
Zitat:
Die Lösung habe ich gepostet. Zitat:
Indem man das Parent zwingt sich neu zu zeichnen bekomme ich den Inhalt des Parent nicht in mein Panel. gruss |
AW: Transparente Bereiche werden nicht aktualisiert
Zitat:
Zitat:
|
AW: Transparente Bereiche werden nicht aktualisiert
Zitat:
Zitat:
Siehe Shot.. Panel in Panel und beide übernehmen den Inhalt des Hauptfensters. (JA nicht 100% Transparent aber emuliert! ) Zudem verlieren meine Panels den eigenen Inhalt nicht.. wenn dem so wäre könnte man die Rahmen der Panels nicht mehr erkennen. Mein Window wird so erstellt..
Delphi-Quellcode:
Inklusive den Property Style BS_GROUPBOX.
FHPanel := CreateWindowEx(WS_EX_TRANSPARENT, SKPANEL, '', Style, Left, Top, Width, Height,
ParentHandle, DlgItemID, SkinEngine.skInstance, nil); Bin raus.. da es hier um VCL geht. gruss |
AW: Transparente Bereiche werden nicht aktualisiert
Hallo,
es funktioniert nun so wie gewünscht, der Tip mit dem Invalidate des Parents war der entscheidende! Vielen Dank! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 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