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 Form.ShowModal->Exception: geht bei sichtbarem Form nicht..? (https://www.delphipraxis.net/10411-form-showmodal-exception-geht-bei-sichtbarem-form-nicht.html)

st2000 17. Okt 2003 21:48


Form.ShowModal->Exception: geht bei sichtbarem Form nicht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

kennt jemand eine Fehlermeldung (D5) :
"Cannot make a visible Form modal!"
:?

Es geht um ein Formular, welches mit
Delphi-Quellcode:
MyForm:=TMyForm.Create
erzeugt und dann mit
Delphi-Quellcode:
MyForm.ShowModal
geöffnet wird.

Welches in den Projektoptionen NICHT unter den Autocreate-Forms (also links) steht, sondern erst auf konkretes create das Licht der Welt erblickt. :nerd:

Ich kapiere nicht, was mit "visible" gemeint ist. Das Formular ist ja vor dem showmodal nur instanziert, aber noch nicht sichtbar. Das will ich ja gerade erst durch showmodal erreichen...

Das Form wird nach Bestätigen der Fehlermeldung dann geöffnet, aber eben nicht modal.

Es soll aber Bestandteil einer Formularaufruffolge sein (quasi wizard-mässig), deshalb wäre es schwierig und unsauber, die Aufrufreihenfolge zu kontrollieren mit nichtmodalen Dialogen... :|

Bin für jeden Fingerzeig (auch direkt auf mich, wenn ich mal wieder zu doof bin :drunken: ) superdankbar.

Gruss,
ST2000

Christian Seehase 17. Okt 2003 22:04

Re: Form.ShowModal->Exception: geht bei sichtbarem Form n
 
Moin ST2000,

kann ich Dir nicht erklären, denn bei mir, auch D5, geht das problemlos.
Hast Du irgendetwas in den Ereignissen des Form2 stehen?
Ist das vielleicht ein MDI Child?

st2000 20. Okt 2003 10:09

Re: Form.ShowModal->Exception: geht bei sichtbarem Form n
 
Hallo, Christian.

Jjjaaa, ist ein MDI-Child ?!? :roll:
Sollte das etwa bei MDI-Childs nicht möglich sein ??? :lol:

Ich habe nämlich eine Unit geschrieben, die eine Art Prozess-Definition aus einer DB ausliest, und dann die dort verzeichneten Dialoge (die ich eben gern mit showmodal aufrufen würde) nacheinander aufruft. Ich muss irgendwie nach dem Schliessen jedes Dialogs wieder zu der aufrufenden Unit zurückkommen, um dort dann ggf. Plausibilitätsprüfungen vorzunehmen, und den ggf. nächsten Dialog aufzurufen...

Zwar erfolgt das Form.Create sowie Form.Show schon in der Aufruf-Unit, aber ich bin unsicher, ob das Programm nach
Delphi-Quellcode:
Form.close (mit Action:=caFree)
zuverlässig wieder an die Zeile nach dem
Delphi-Quellcode:
Form.Show
in der Aufruf-Unit zurückspringt, oder nur dann, wenn der User nicht zwischendurch irgendeinen anderen Dialog (und sei es nur die Hilfe) anklickt...

Deshalb wollte ich es halt mit showmodal machen. Da kann ich ja einen Ergebniswert
Delphi-Quellcode:
Form.Showmodal:=Ergebnis
einer Dummy-Variablen in der Aufruf-Unit zuweisen, was Delphi ja zwingt, dort hin zurückzuspringen.

Wäre es auch ohne showmodal so ?

Gruss,
Stefan

sakura 20. Okt 2003 10:13

Re: Form.ShowModal->Exception: geht bei sichtbarem Form n
 
Zitat:

Zitat von st2000
Ich kapiere nicht, was mit "visible" gemeint ist. Das Formular ist ja vor dem showmodal nur instanziert, aber noch nicht sichtbar. Das will ich ja gerade erst durch showmodal erreichen...

Setze Visible im Objektinspektor auf False. Ist es auf True, dann zeigt sich das Form automatisch an (Show, nicht ShowModal). Ist Visible auf False, kannst Du das Form mit ShowModal anzeigen und den Rest der Anwendung "blockieren"

...:cat:...

st2000 20. Okt 2003 10:35

Re: Form.ShowModal->Exception: geht bei sichtbarem Form n
 
Ach DAS ist mit visible gemeint. Danke. Man lese im ObjectInspektor ... :oops:

Aber wenn ich das versuche,
Delphi-Quellcode:
Form.Visible:=false
dann erhalte ich die Fehlermeldung 'cannot hide a MDI-Child'.

Allerdings ist das Form mit
Delphi-Quellcode:
Align:=alLeft
fest an das MDI-Mainform gefesselt. Kann ich dann das Kindform auch als Nicht-MIDI-Child betreiben ? Oder muss ich dann irgendwelche Inkompatibilitäten fürchten (z.B. nicht in der Windows-Liste in dem gleichnamigen Menüpunkt des Mainforms vorhanden) ?

Gruss,
Stefan


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