Folgendes:
ich weise einer Listbox sukzessive alle Elemente meines Array Kasten (eigene Klase: TKasten) zu, indem:
Code: Alles auswählen
for i:= Low(Kasten) to High(Kasten) do begin
(...) // Routinen, die s bilden
ListBox1.AddItem(s, Kasten[i]);
end;
Code: Alles auswählen
procedure TForm2.ListBox1SelectionChange(Sender: TObject; User: boolean);
begin
tmp_Kasten:=TKasten(ListBox1.Items.Objects[ListBox1.ItemIndex]);
(...)
Memo1.Text:=tmp_Kasten.Text;
end;
wenn ich nun den Text im Memo von Hand änder und diese Änderung automatisch an tmp_Kasten übergebe...
Code: Alles auswählen
procedure TForm2.Memo1EditingDone(Sender: TObject);
begin
tmp_Kasten.Text:=TrimRight(Memo1.Text);
end;
meine zwei Fragen sind: a) Warum? und b) Wie kann ich das verhindern bzw. die Sache also so drehen, dass (wie in meiner Prozedur TForm2.Memo1EditingDone(Sender: TObject); vorgeshen) nur der tmp_Kasten-Wert sich ändert, das ursprüngliche Array aber unberührt bleibt?
Meine Vermutung ist, dass tmp_Kasten und Kasten[] in einem der Schritte ohne mein Wissen als Pointer aneinander gekoppelt werden... Shice!
