Guten Morgen zusammen!
Leider war gestern soviel los, dass ich nicht eher antworten konnte.
Also das ist schon richtig so, dass ich erreichen will, dass der Anwender ausschließlich in dem Fenster Form2 arbeiten kann, bis er damit fertig ist, dass Fenster dann schließt und anschließend mit der Anwendung in der Form1 weiter macht.
Zitat aus Beschreibung im docwiki
http://docwiki.embarcadero.com/Libra...Form.ShowModal
"
... Da bei einem modalen Formular die Anwendung unterbrochen wird, bis der Benutzer das Fenster wieder schließt, ..." Daraus habe ich abgeleitet, dass die Form1 nicht verwendet werden kann (=> und im Hintergrund bleibt!!), bis Form2 wieder geschlossen worden ist. Und in der Zwischenzeit soll nur in Form2 gearbeitet werden.
Die Anwendung sieht tatsächlich so ähnlich aus, wie Delbor das geschrieben hat. Allerdings verwende ich den ModalResult nicht, da ich den für meinen Ablauf gar nicht benötige. Innerhalb von Form2 befinden sich zwei Buttons, bei denen bei beiden der ModalResult = mrNone ist. Geschlossen wird Form2 über das rote Kreuz oben rechts. Die fiktive Form2 ist in der echten Anwendung das Programm frmHandlager.
Delphi-Quellcode:
procedure TfrmMain.bbtHandlagerClick(Sender: TObject);
{-------------------------------------------------------------------------------
Handlager starten
-------------------------------------------------------------------------------}
begin
p_ProtoWrite('');
p_ProtoWrite('Aufruf Handlager aus frmMain');
frmHandlager.ShowModal;
p_ProtoWrite('Handlager beendet');
end;
Und wenn die Situation eintritt, dass das Fenster von Form1 nach vorne kommt, kann darin nicht geklickt werden (da die Form1 ja unterbrochen ist), sondern für den Anwender fühlt sich das son an, als wenn die Anwendung sich aufgehängt hat, bzw. das "sein Programm" (=> Form2) verschwunden ist. Mit dem ModalResult habe ich bisher nicht gearbeitet, weil ich damit keine Steuerung bauen wollte, sondern über den Mechanismus
Form2.ShowModal
sicherstellen wollte, dass der Anwender nur das "richtige" Fenster 2 verwendet.
Ich hoffe mal, dass mein Vorgehen nun etwas genauer herausgearbeitet ist.