Zitat von
Hyperspacer:
... Obowhl ich den fehler schon komisch finde
Mit diesem Code hier:
Delphi-Quellcode:
with TEdit.Create(form1) do begin
...
end;
legst Du zwar ein TEdit an und initialisierst du es, aber direkt nach dem End wird es wieder freigegeben, weil du es keiner Variablen zuweist. Und damit arbeiten all deine Routinen, die du zuweist, im luftleeren Raum, und dein Sender.Free gibt bereits freien Speicher nochmal frei.
Wenn Du schon Controls on-the-fly erzeugen willst, musst Du sie in einer Variable speichern, und zwar keiner lokalen innerhalb der Prozedur, sondern innerhalb der aktuellen Klasse/des aktuellen Forms:
Delphi-Quellcode:
tmp_edit := TEdit.Create(form1);
with tmp_edit do begin
tmp_edit.Parent := form1;
end;
und dann spätestens im FormClose-Event:
FreeAndNil(tmp_edit);