Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Das Programm auf Formular warten lassen (https://www.delphipraxis.net/13234-das-programm-auf-formular-warten-lassen.html)

gerritlober 14. Dez 2003 14:13


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:
procedure Pfadlesen;
var pfad : string;
begin
  MeinForm.Show;
  Pfad := MeinForm.Pfad;
end;
Ich komme da echt nicht weiter. :wall:

Christian Seehase 14. Dez 2003 14:18

Re: Das Programm auf Formular warten lassen
 
Moin Gerrit,

öffne es nicht mit Show, sondern mit ShowModal.
Dann hast Du, was Du willst.

Luckie 14. Dez 2003 14:34

Re: Das Programm auf Formular warten lassen
 
Und beim OK Button schreibst du:
Delphi-Quellcode:
ModalResult := mrOK
Und beim Abbrechen Buttom entsprechend:
Delphi-Quellcode:
ModalResult := mrCancel;
Das kannst du dann in der aufrufenden abfragen:
Delphi-Quellcode:
if Form2.ShowModal = mrOK then // Fenster wurde mit OK Button geschlossen
begin
  ...;
end
else
  ...;
end;

Luckie 14. Dez 2003 14:34

Re: Das Programm auf Formular warten lassen
 
Und beim OK Button schreibst du:
Delphi-Quellcode:
ModalResult := mrOK
Und beim Abbrechen Buttom entsprechend:
Delphi-Quellcode:
ModalResult := mrCancel;
Das kannst du dann in der aufrufenden abfragen:
Delphi-Quellcode:
if Form2.ShowModal = mrOK then // Fenster wurde mit OK Button geschlossen
begin
  ...;
end
else
  ...;
end;
Somit reduziert sich der Code in der zweiten Form, wenn nichts weiter Großes passiert, auf diese zwei Zeilen.

gerritlober 15. Dez 2003 16:56

Re: Das Programm auf Formular warten lassen
 
Das klappt bei mir aber irgendwie nicht, ich habe immer den Rückgabewert 2
seltsamer Weise.

Treffnix 15. Dez 2003 17:01

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.

gerritlober 15. Dez 2003 17:22

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:
ShowMessage('Test');
Wird nicht ausgeführt.


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