![]() |
Wird in meiner Application gerade ein modales Fenster angezeigt?
Hallo!
Ich benutze TJvTrayIcon aus JvCustomD5D.bpl mit Delphi 5 (ja, richtig gelesen, nicht 2005). Wenn ich HideApplication aufrufe während ein modales Fenster angezeigt wird, dann führt das zu einem Stacküberlauf. Frage: Wie bekomme ich heraus, ob ein zu meiner Application gehöriges modales Fenster angezeigt wird (um dann HideApplication nicht aufzurufen)? Erster Ansatz: Mittels WinAPI alle Fenster durchklappern, ob sie zu meiner Application gehören und modal sind. Da ich mich recht wenig mit der WinAPI auskenne, würde das einen erheblichen Einarbeitungsaufwand für mich bedeuten. Außerdem dauert das offenbar ´ne Weile, ![]() |
AW: Wird in meiner Application gerade ein modales Fenster angezeigt?
Merk es dir doch einfach.
|
AW: Wird in meiner Application gerade ein modales Fenster angezeigt?
Vielleicht mit.. IsWinModal then ?
so wie Luckie schon sagt! ;) merken. gruss |
AW: Wird in meiner Application gerade ein modales Fenster angezeigt?
IMHO hate ein modales Fenster fsModal in Formstate.
Also sollte es mit einer Schleife durch Screen.Forms und if (fsModal in Screen.Forms[i].FormState) ... doch lösbar sein. Frank |
AW: Wird in meiner Application gerade ein modales Fenster angezeigt?
Hallo RSE,
Du könntest Dir auch mal IsWindowEnabled anschauen. Ich verwende so etwas in der Art
Delphi-Quellcode:
um festzustellen, ob das Hauptfenster gerade "Input-willig" ist.
IsWindowEnabled(Application.Mainform.Handle)
Gruß, blauweiss |
AW: Wird in meiner Application gerade ein modales Fenster angezeigt?
@Luckie:
Merken ist schön und gut, aber nicht in jedem Fall (z.B. in meinem) durchführbar. Das Fenster, das mir aktuell im Weg ist, kommt zum beispiel, weil eine Hilfedatei nicht gefunden wurde, von einer Erweiterung, die mein Kollege eingebaut hat. Ich bin mir nicht mal sicher, ob das ein VCL-Fenster ist. @dataspider: Screen.Forms klingt interessant. Das werde ich morgen mal testen. @blauweiss: IsWindowEnabled klingt zwar nicht nach dem, was ich suche (mein Mainform ist Visible und Enabled), aber ich werde es mir morgen auf Arbeit ebenso mal ansehen. Vielleicht liefert die Funktion ja false, wenn mein Mainform blos aufgrund eines anderen modalen Fensters den Fokus grad nicht erhalten kann... viel sagt MSDN ja nicht darüber. |
AW: Wird in meiner Application gerade ein modales Fenster angezeigt?
Zitat:
ja, die Funktion liefert FALSE, falls gerade ein modaler Dialog geöffnet ist. Gruss, blauweiss |
AW: Wird in meiner Application gerade ein modales Fenster angezeigt?
Zitat:
|
AW: Wird in meiner Application gerade ein modales Fenster angezeigt?
Auch wenn der TE das Problem für sich ja gelöst zu haben scheint, möchte ich trotzdem noch Application.ModalLevel nennen. Vlt. hilft es ja jemand anderen :-D
|
AW: Wird in meiner Application gerade ein modales Fenster angezeigt?
... kann die Löschfunktion nicht finden :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 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