Versuchts doch einmal ganz einfach:
Das Hauptformular exportiert eine logische Variable
isAborted: boolean;
Form2 wird geöffnet mit
Delphi-Quellcode:
procedure TForm1.btnForm2ShowClick(Sender: TObject);
begin
Form2.ShowModal;
if isAborted then Close
end;
Zum Schließen von Form2 gibt es die Buttons btnClose und btnAbort
Delphi-Quellcode:
procedure TForm2.btnCloseClick(Sender: TObject); // Form2 schließen
begin
isAborted:= false; Close
end;
procedure TForm2.btnAbortClick(Sender: TObject); // Programm beenden
begin
isAborted:= true; Close
end;
die dem Hauptprogramm mit isAborted übermitteln, ob das Programm beendet werden soll oder nicht.
Mit ModalResult kann man's eleganter ausdrücken, es ist dann aber nicht mehr so einfach zu überblicken.