Ich beiß gleich in die tischkante..
Ich erstelle dynamisch ein Tedit, dem ich zwei ereignisproceduren zuweise:
Delphi-Quellcode:
with TEdit.Create(form1) do
begin
Parent := Form1;
Top := 50;
Left := 100;
SetFocus;
OnExit := ItemEditOnExit;
OnKeyDown := ItemEditOnKeyDown;
end;
So weit so gut. Hier nun die Proceduren:
Delphi-Quellcode:
procedure TForm1.ItemEditOnExit(Sender: TObject);
begin
ListView1.ItemFocused.SubItems.Strings[0] := (Sender as TEdit).Text;
Sender.Free;
end;
procedure Tform1.ItemEditOnKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
If Key = VK_Return then
begin
ListView1.ItemFocused.SubItems.Strings[0] := (Sender as TEdit).Text;
Sender.Free;
end;
end;
Wenn die OnExit Procedure ausgeführt wird, geht alles glatt. Aber wenn die OnKeyDown Procedure ausgeführt wird gibt es eine wunderschöne Zugriffsverletzung nachdem Free.
Ich habe schon versucht das Edit nicht in der OnKeyDown Procedure zu freen, sondern von dort die OnExit Procedure auszuführen, was allerdings zum selben Fehler führte.
Wer kann mir sagen wie ich diesen Fehler beheben oder umschippern kann?
mfg
Daniel