Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zwischen modal und nicht modal umschalten (https://www.delphipraxis.net/101875-zwischen-modal-und-nicht-modal-umschalten.html)

Eurowig 19. Okt 2007 13:03


Zwischen modal und nicht modal umschalten
 
Hallo
gibt es eine Möglichkeit, eine Form geöffnet mit ShowModal auf "Normal" (also wie TForm.Show) umzuschalten.

Szenario:
Der Anwender offnet aus der Hauptanwendung ein Form (TForm1.ShowModal). Dann macht er ein paar Eingaben und klickt auf OK. Nun sollte das Form geöffnet bleiben aber nicht Modal sein, damit der Anwender in der Hauptanwendung weiterarbeiten kann. Während er die Eingaben macht darf er nicht zur Hautpanwendung zurück, deshalb ShowModal.

Alternativ könnte ich auch das Form mit Show aufrufen, FormStyle = fsStayOnTop und die Hautpanwendung sperren bis auf OK geklickt wird. Vielleicht ist das sogar die bessere Lösung, aber mich würde eine andere Möglichkeit trotzdem interessieren

Thx

mkinzler 19. Okt 2007 13:18

Re: Zwischen modal und nicht modal umschalten
 
Du könntest die Form auch schließen und gleich wieder neu öffnen

sirius 19. Okt 2007 13:58

Re: Zwischen modal und nicht modal umschalten
 
Über showmodal aus der VCL gibt es keine Lösung.

Du könntest aber (wenn du weist, welche Formulare gesperrt werden müssen), dies über MSDN-Library durchsuchenEnableWindow recht einfach machen.

RavenIV 19. Okt 2007 13:58

Re: Zwischen modal und nicht modal umschalten
 
Zitat:

Zitat von Eurowig
gibt es eine Möglichkeit, eine Form geöffnet mit ShowModal auf "Normal" (also wie TForm.Show) umzuschalten.

Mir fällt da auch nichts besseres ein, als das von mkinzler.

Progman 19. Okt 2007 14:00

Re: Zwischen modal und nicht modal umschalten
 
setze es auf StayOnTop und öffne es nur mit Show, das müsste doch gehen

sirius 19. Okt 2007 14:24

Re: Zwischen modal und nicht modal umschalten
 
In der Unit Forms gibt es noch die zwei Funktionen
DisableTaskWindows
EnableTaskWindows
Diese rufen auch EnableWindow aus der WinApi auf, allerdings für alle Windowhandles aus dem aktuellen Thread. Dadurch musst du nicht mehr drauf achten, wieviele Fenster du offen hast.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 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