Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Auf Modale Fenster prüfen (https://www.delphipraxis.net/54129-auf-modale-fenster-pruefen.html)

Orbmu2k 28. Sep 2005 15:28


Auf Modale Fenster prüfen
 
Ich habe ein sehr umfangreiches Project mit sehr vielen Forms, die meissten davon werden Modal von der Hauptform geöffnet. Kann man in der Hauptform irgendwie prüfen ob gerade ein Modales Fenster geöffnet ist ?

Ich habe es mit
Delphi-Quellcode:
if not <MainForm>.Enabled then ...
probiert ... aber Enabled wird wohl leider nicht auf False gestellt wenn ein Modales Fenster geöffnet wird :(

RavenIV 28. Sep 2005 15:41

Re: Auf Modale Fenster prüfen
 
wenn ein modales Fenster geöffnet ist, ist das Mainform solange blockiert, bis das modale Form wieder geschlossen wird.
Auch alle functions und procedures des mainform machen solange nix mehr.

wenn du parallel zu dem modalen Form was machen willst, wirst du um Threads nicht drumrum kommen...

Orbmu2k 28. Sep 2005 15:49

Re: Auf Modale Fenster prüfen
 
Also so ganz kann das nicht stimmen Auf Eigene Messages reagiert meine Mainform Klasse noch und da liegt auch das Problem er soll die Message nur verarbeiten wenn kein Modales Fenster gerade geöffnet ist ...

Orbmu2k 28. Sep 2005 16:31

Re: Auf Modale Fenster prüfen
 
Ok habs jetzt so gelöst ...

Delphi-Quellcode:
function TfrmMain.IsAnyClientWindowVisible: boolean;
var
  i:Integer;
begin
  Result := False;
  for i := 0 to Screen.FormCount - 1 do
     if Handle <> Screen.Forms[i].Handle then
       if IsWindowVisible(Screen.Forms[i].Handle) then
       begin
         Result := True;
         Break;
       end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 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 by Thomas Breitkreuz