![]() |
ModalForm minimieren
Hallo,
Bin immernoch am portieren von Delphi 6 nach Delphi 2007 und bin leider mal wieder auf ein Problem gestoßen. Wieder Fensterhandling: Hauptformular ruft modales Formular auf. Wenn man nun das modale Formular minimiert und noch andere Fenster auf dem Desktop offen hat (z.B. einen Browser), dann kommt der Browser in den Vordergrund ... Warum? Ich dachte erst, es lege an unseren eigenen Formulartypen, aber hab nun eine ganz frische Anwendung erstellt und dort passiert es ebenfalls. Bei Delphi 6 behielt meine Anwendung den Focus. Jemand eine Idee? Gruß, Steffen |
Re: ModalForm minimieren
Keiner eine Idee?
Das Problem muss doch noch jemand haben ... :( |
Re: ModalForm minimieren
Hallo,
du schreibst, dass das Problem bei Delphi 6 nicht vorhanden war. Ich nutzte Delphi 7 und da ist es aber genau so wie in Delphi 2007. Also seit Delphi 7 scheint es so zu sein. Wenn ein modales Fenster im Vordegrund ist, dann hat nicht das Hauptformular den Fokus für die Anwendung sondern das modale. Wenn also das modale minimiert wird wird die Anwendung minimiert. Du kannst ja auch nicht, wenn ein modales Fenster vorne ist, die Anwendung über die Taskleiste die beenden. Das wird wohl nicht anderes gehen. Gruß Mazel |
Re: ModalForm minimieren
Hallo Mazel,
danke für deine Antwort. Du hast recht! Es ist wirklich in Delphi 6 auch so, wir hatten das damals selbst "korrigiert" und diese Korrektur funktioniert nun nicht mehr. Mir ist die Modal Problematik zwar klar. Aber vernünftig finde ich das Verhalten trotzdem nicht. Schließlich minimiert sich ja die restliche Anwendung nicht, sondern nur das eine Modal-Fenster. Die restlichen Fenster verschwinden nur in den Hintergrund (wenn man noch andere Programme offen hat). Mich persönlich irritiert das. Versuche jedenfalls nun, unseren "Fix" wieder zum Laufen zu bringen. Bin bislang aber gescheitert. Vorher sah es so aus:
Delphi-Quellcode:
Ich schätze, dass sich die Abarbeitungsreihenfolge geändert hat. Jedenfalls muss nach dem Aufruf noch etwas kommen, das ihn wieder in den Hintergrund schiebt.
procedure CBaseForm.WMSize(var Message: TWMSize);
begin inherited; if WindowState=wsMinimized then Self.BringToFront; end; Gruß, Steffen |
Re: ModalForm minimieren
Leider kann ich dir da nicht helfen. Der von dir genannte Code funktioniert zumindest in Delphi 7 auch noch, aber das bringt dir ja nun nichts. :(
Gruß Mazel |
Re: ModalForm minimieren
Ne, leider nicht ;)
Aber trotzdem danke! |
Re: ModalForm minimieren
Habe zu diesem Thema eine neue Frage in diesem
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:12 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