Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Erkennen ob Modal-Dialog/Fenster geöffnet? (https://www.delphipraxis.net/184331-erkennen-ob-modal-dialog-fenster-geoeffnet.html)

PeterPanino 18. Mär 2015 12:40

Erkennen ob Modal-Dialog/Fenster geöffnet?
 
Hallo! Kann man irgendwie feststellen, ob in der Applikation irgendein MODALER Dialog geöffnet ist? Z.B. Message-Dialog, ein modal geöffnetes Applikations-Formular, usw. Wenn ja, dann sollte man das modale Element in den Vordergrund bringen können.

Der schöne Günther 18. Mär 2015 12:47

AW: Erkennen ob Modal-Dialog/Fenster geöffnet?
 
Falls du VCL meinst:

http://docwiki.embarcadero.com/Libra...ion.ModalLevel

himitsu 18. Mär 2015 13:01

AW: Erkennen ob Modal-Dialog/Fenster geöffnet?
 
So findet man natürlich aber nur die Fenster, welche auf TForm aufbauen und per ShowModal aufgerufen wurden.
In Screens sind alle TForms enthalten und da könnte man auch auf fsModal prüfen. (mit dem selben Ergebnis)

MessageBox und andere WinAPI-Dialoge sind dort nicht enthalten, genauso wie der TaskDialog (vor Vista eine TForm und sonst WinAPI),
außer sie sind in einer VCL-Komponente gekapselt und Diese ruft ModalStarted/ModalFinished auf.

DeddyH 18. Mär 2015 13:03

AW: Erkennen ob Modal-Dialog/Fenster geöffnet?
 
Evtl. hilft auch das hier: Modale Fenster in den Vordergrund holen

PeterPanino 18. Mär 2015 13:08

AW: Erkennen ob Modal-Dialog/Fenster geöffnet?
 
Danke für die Tipps! Werde diese mal durchgehen...

himitsu 18. Mär 2015 13:16

AW: Erkennen ob Modal-Dialog/Fenster geöffnet?
 
Zitat:

Zitat von DeddyH (Beitrag 1293917)
Evtl. hilft auch das hier: ...

Aber bitte mit TApplicationEvents, anstatt direkt über OnIdle. :zwinker:

PeterPanino 18. Mär 2015 13:18

AW: Erkennen ob Modal-Dialog/Fenster geöffnet?
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1293910)

Mhm, wenn ein FileOpen-Dialog geöffnet ist, dann ergibt Application.ModalLevel 0, obwohl ein FileOpen-Dialog praktisch gesehen ja auch modal ist.

himitsu 18. Mär 2015 13:23

AW: Erkennen ob Modal-Dialog/Fenster geöffnet?
 
Zitat:

Zitat von himitsu (Beitrag 1293915)
So findet man natürlich aber nur die Fenster, welche auf TForm aufbauen und per ShowModal aufgerufen wurden.
...

MessageBox und andere WinAPI-Dialoge sind dort nicht enthalten, genauso wie der TaskDialog (vor Vista eine TForm und sonst WinAPI),
außer sie sind in einer VCL-Komponente gekapselt und Diese ruft ModalStarted/ModalFinished auf.

...

blauweiss 18. Mär 2015 13:32

AW: Erkennen ob Modal-Dialog/Fenster geöffnet?
 
Hallo PeterPanino,

ich verwende dafür diese Abfrage:
Delphi-Quellcode:
if not IsWindowEnabled(Application.MainForm.Handle) then
...
Viele Grüße,
blauweiss

PeterPanino 18. Mär 2015 14:20

AW: Erkennen ob Modal-Dialog/Fenster geöffnet?
 
Zitat:

Zitat von blauweiss (Beitrag 1293928)
Hallo PeterPanino,

ich verwende dafür diese Abfrage:
Delphi-Quellcode:
if not IsWindowEnabled(Application.MainForm.Handle) then
...
Viele Grüße,
blauweiss

Genial! Scheint mit allem zu funktionieren, was modal ist! Danke für den Tipp!

Viele Grüße von rotweiß ;-)

PS: Hier ist übrigens die MSDN-Seite für diese Funktion:

https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 Uhr.
Seite 1 von 2  1 2      

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