![]() |
Das Programm auf Formular warten lassen
Hallo Leute,
ich habe mal eine Frage, wie kann ich ein Programm darauf warten lassen, dass es erst im Quelltext fortfährt, wenn das zuvor geöffnete Form wieder geschlossen ist? Bei den Standarddialogen von Windows funktioniert das ja. Beispiel:
Delphi-Quellcode:
Ich komme da echt nicht weiter. :wall:
procedure Pfadlesen;
var pfad : string; begin MeinForm.Show; Pfad := MeinForm.Pfad; end; |
Re: Das Programm auf Formular warten lassen
Moin Gerrit,
öffne es nicht mit Show, sondern mit ShowModal. Dann hast Du, was Du willst. |
Re: Das Programm auf Formular warten lassen
Und beim OK Button schreibst du:
Delphi-Quellcode:
Und beim Abbrechen Buttom entsprechend:
ModalResult := mrOK
Delphi-Quellcode:
Das kannst du dann in der aufrufenden abfragen:
ModalResult := mrCancel;
Delphi-Quellcode:
if Form2.ShowModal = mrOK then // Fenster wurde mit OK Button geschlossen
begin ...; end else ...; end; |
Re: Das Programm auf Formular warten lassen
Und beim OK Button schreibst du:
Delphi-Quellcode:
Und beim Abbrechen Buttom entsprechend:
ModalResult := mrOK
Delphi-Quellcode:
Das kannst du dann in der aufrufenden abfragen:
ModalResult := mrCancel;
Delphi-Quellcode:
Somit reduziert sich der Code in der zweiten Form, wenn nichts weiter Großes passiert, auf diese zwei Zeilen.
if Form2.ShowModal = mrOK then // Fenster wurde mit OK Button geschlossen
begin ...; end else ...; end; |
Re: Das Programm auf Formular warten lassen
Das klappt bei mir aber irgendwie nicht, ich habe immer den Rückgabewert 2
seltsamer Weise. |
Re: Das Programm auf Formular warten lassen
Du musst den Buttons in dem Formular das du öffnest auch das entsprechende Modalresult zuweisen. Entweder im OnClick mit ModalResult:= mrOK (bzw. mrCancel) oder im OI.
|
Re: Das Programm auf Formular warten lassen
Sorry, aber bei mir klappt das nicht. Ich habe den Button ModalResult im
OI zugewiesen. Dies ist der Fenster-Aufruf:
Delphi-Quellcode:
procedure TMainWindow.Projekteinstellungen1Click(Sender: TObject);
begin ConfigWindow.Project := ProjectData; if ConfigWindow.ShowModal = mrOk then begin ProjectData := ConfigWindow.Project; ShowMessage('Test'); end; end;
Delphi-Quellcode:
Wird nicht ausgeführt.
ShowMessage('Test');
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 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