Hallo Zusammen,
langsam zweifle ich dran, dass ich klar bei Verstand bin. Folgende Methode ist gegeben (die Variable X wurde eingeführt, um den Befehl zu zerlegen).
Delphi-Quellcode:
procedure tEditData.AssignOrdersListFromListBox(aListBox: tListBox);
var
i: integer;
foo: tOrder;
x: integer;
begin
fol.Clear;
for I := 0 to aListBox.Count - 1 do
begin
foo := tOrder.Create(fdm.IfConnectionOpen, fdm.connection); //<- Problem!
x := tOrder(aListBox.Items.Objects[i]).OrderNum;
x := fdm.OrderList.GetIndexOfOrder(x);
foo.AssignFrom(fdm.OrderList.Items[x]);
fol.Add(foo);
end;
end;
Beim erstellen der Listbox, werden die Objekte mit Referenz an die Listbox angehängt (ListBox.addItem(Bezeichnung, Objekt). Das funktioniert auch wunderbar. Bei der Iteration über die Listbox, kann auch fein auf das Objekt zugegriffen werden.
Wenn ich die obige Methode durchlaufe, geschied seltsames. Die Liste FOL (tObjectList), wird von den altlasten bereinigt, im Anschluss daran, sollen die neuen Objekte aus der Listbox, dieser zugeordnet werden. Hierfür wird über die Listbox iteriert. Nach dem Eintritt in die Schleife, weisst das Objekt aListBox.items.object[i] noch wunderbar seinen Inhalt auf. Nach dem erstellen des Temporären Objektes FOO, ist dieser plötzlich NULL. Es scheint so, als ob durch die Initialisiation des Objektes auch das zugehörige ListboxObjekt initialisiert wird. Das kann es doch gar nicht geben, oder? Hat jemand eine Idee an was das liegen könnte, ich bin Ratlos.
Danke für euere Hilfe
Das GreenHorn