Wenn Du dynamische modale Fenster brauchst, geht das eigentlich ganz einfach.
Delphi-Quellcode:
procedure TMainForm.ButtonBlubbClick(Sender: TObject);
var
frmSettings: TrmSettings;
begin
frmSettings := TfrmSettings.Create(nil);
try
//Benutzer hat "OK" geklickt
if frmSettings.ShowModal = mrOK then
MachWas;
finally
frmSettings.Free;
end;
end;
Dazu würde ich die entsprechenden Formulare erstens nicht automatisch erzeugen lassen (scheint ja schon so zu sein) und in deren Units die jeweilige globale Formular-Variable rigoros löschen, da sie nicht gebraucht wird und man so recht schnell merkt, wo überall davon Gebrauch gemacht wird. Dann muss man aber auch daran denken, dass die Buttons auch das ModalResult des Formulars setzen sollten (kann man im Objektinspektor einstellen), sonst funktioniert der obige Code nicht wie erwartet.