Controls im PageControl verschwinden unkontrolliert
Hallo allerseits,
ich habe eine Form mit einem PageControl mit 3 Seiten darauf. In dem PageControl befindet sich eine Hotkey-Komponente. Beim Eingeben eines Hotkeys, der mit Strg+Alt beginnt, verschwinden interessanterweise sämtliche Checkboxen und Buttons auf dieser Seite des Pagecontrols. Sobald man mit der Maus über die einzelnen verschwundenen Komponenten fährt, sind sie wieder sichtbar. Labels sind davon nicht betroffen, sie verschwinden nicht. Auch wenn die Hotkey-Komponente nicht den Fokus hat (versuchsweise habe ich sie sogar ganz gelöscht) verschwinden die Controls, wenn man Strg-Alt drückt. Wie kann ich das verhindern, damit man auch einen Strg-Alt-... Hotkey "problemlos" eingeben kann? Danke für eure Antworten Adrian |
AW: Controls im PageControl verschwinden unkontrolliert
Das scheint ein Verhalten von älteren Delphiversionen im Windows 7 zu sein.
Ist mir im D7 auch schon aufgefallen, allerdings nicht nur in PageControls. Ich bin mir nicht sicher, aber irgendwo in der DP und/oder im QC gibt es dafür einen Bugfix. |
AW: Controls im PageControl verschwinden unkontrolliert
Ok danke. Schön, dass der Fehler bekannt ist :-)
Die Seite von QC finde ich leider nicht (die Seite aus der ToolTipText-Hilfe von DP existiert leider nicht) und auf Delphi-Praxis habe ich nichts gefunden. Wo finde ich den Bugfix? Danke! |
AW: Controls im PageControl verschwinden unkontrolliert
Ich bin nicht sicher, aber ich vermute, das ist von Andreas Hausladen. Geh mal in die Sparte "Software-Projekte der Mitglieder" und such dort nach Themen, die von jbg begonnen wurden. Wenn ich recht habe, müsste es da dabei sein.
|
AW: Controls im PageControl verschwinden unkontrolliert
Ich habe das VCLFixPack 1.2 gefunden und als Unit eingebunden. Leider wird das Problem dadurch noch nicht behoben.
Oder muss ich das IDEFixpack nehmen. Aber das ist doch gar nicht für D2005, oder? Außerdem stand da, dass es die eigenen Projekte nicht verändert. Was kann ich noch tun? |
AW: Controls im PageControl verschwinden unkontrolliert
Folgender Code muss in Controls.pas::TWinControl.WndProc nach dem "inherited WndProc(Message);" Aufruf.
Delphi-Quellcode:
if Message.Msg = WM_UPDATEUISTATE then
Invalidate; // Ensure control is repainted |
AW: Controls im PageControl verschwinden unkontrolliert
Da es etwas "schwer" ist, die VCL-Cuellcodes zu ändern, könnte man es auch so versuchen:
Delphi-Quellcode:
Aber es könnte auch sein, daß es so zu früh ausgelöst wird ... wenn's nicht klappt, dann würd ich da noch was dran verändern.
uses Controls;
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); var C: TWinControl; begin if Msg.message = WM_UPDATEUISTATE then begin C := FindControl(Msg.hwnd); if Assigned(C) then C.Invalidate; end; end; Application.OnMessage := ApplicationEvents1Message; // Wenn schon vorhanden, dann TApplicationEvents auf die Form pappen und dort OnMessage verwenden // Auf einer Form reicht, da es für alle Controls verwendet wird. |
AW: Controls im PageControl verschwinden unkontrolliert
Danke für eure Mühen.
Ich verzweifel langsam. Die procedure von himitsu wird bei mir zwar aufgerufen, allerdings ist die Message nie WM_UPDATEUISTATE. Dadurch wird invalidate nicht aufgerufen und die Controls bleiben verschollen. Die Controls.pas kann ich leider nicht ändern, da ich D2005 Personal habe und da sind ja nur die dcu's und nicht die pas-Dateien enthalten. Noch Ideen? |
AW: Controls im PageControl verschwinden unkontrolliert
Ich bin auch an der Lösung dieses Problems interessiert, da dass nicht nur bei (sehr viel) älteren Delphi Versionen vorhanden ist!
|
AW: Controls im PageControl verschwinden unkontrolliert
Zitat:
Das ganze Problem beginnt aber schon in TWinControl.DefaultHandler, bei dem CN_CTLCOLORMSGBOX..CN_CTLCOLORSTATIC die Hintergrundfarbe auf den Brush ändern, was bei nicht-gethemeten Anwendungen in Ordnung ist, aber Windows weiß bei gethemeten Anwendungen besser, was wie zu zeichnen ist als die VCL. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz