Ich würde die Form-Variable lokal deklarieren und einen Ressourcenschutzblock einbauen.
Delphi-Quellcode:
procedure TMain.Men_TerminEditClick(Sender: TObject);
var
s: integer;
frm_MyTermin: Tfrm_MyTermin;
begin
if Assigned(MyDatabase) then begin
if MyUser.IsAllow(read) then begin
S:= SQLQuery2.FieldByName('ID').AsInteger;
SQLQuery2.Close;
frm_MyTermin:=Tfrm_MyTermin.Create(self, MyDatabase, MyUser);
try
frm_MyTermin.execute(s);
finally
frm_MyTermin.Free;
end;
SQLQuery2.Open;
SQLQuery2.Locate('ID',s,[]);
end;
end else
Showmessage('Es besteht keine Datenbankverbindung');
end;
Konstruktor und Destruktor von Tfrm_MyTermin hast Du hoffentlich überschrieben? Wobei ich mich frage, wieso Du den Destruktor verwendest und nicht das OnDestroy-Event des Formulars. Wenn die Komponenten schon zur Designtime darauf platziert wurden (oder beim Erzeugen das Formular als Owner angegeben wurde), ist die Freigabe auch überflüssig, da dies sowieso automatisch geschieht.