Deine Vorgehensweise bei modalen Formularen ist
suboptimal.
Hier ist eine Blaupause für den korrekten Umgang mit einem
modalen Formular :
Delphi-Quellcode:
var
// Variable für modales Formular soll immer lokal sein
// zur Sicherheit sollte man die globale Variable "Form2" auskommentieren
frm : TForm2;
begin
// Wichtig!
// der Owner des Formular soll nil sein
// setzt man Application oder self als Owner ein wird das Erzeugen
// und Zerstören des Formular verlangsamt
// Unter seltenen Umständen kann es zu Zugriffsverletzungen bei schlecht programmierten
// Komponenten kommen
frm:=TForm2.create(nil);
try
// Anfangsdaten grundsätzlich nur über Properties zuweisen
frm.Property1 := ...;
frm.Property2 := ...;
// man kann auch eine Methode verwenden um gleich mehrere Anfangswerte
// auf einen Rutsch zu setzen
frm.Init('Bitte neues Passwort eingeben', self.FUser, self.FOldPW, 3);
if frm.showmodal = mrOK then // nicht vergessen das ModalResult auszuwerten!
begin
// Daten übernehmen
... := frm.Property1;
... := frm.Property2;
end;
finally
frm.Free;
end;
end;