AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Objects in Listbox plötzlich initialisiert, wie vermeiden?
Thema durchsuchen
Ansicht
Themen-Optionen

Objects in Listbox plötzlich initialisiert, wie vermeiden?

Ein Thema von GreenHorn3600 · begonnen am 24. Feb 2008 · letzter Beitrag vom 24. Feb 2008
Antwort Antwort
GreenHorn3600

Registriert seit: 24. Jun 2007
165 Beiträge
 
#1

Objects in Listbox plötzlich initialisiert, wie vermeiden?

  Alt 24. Feb 2008, 15:13
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
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Objects in Listbox plötzlich initialisiert, wie vermeide

  Alt 24. Feb 2008, 15:34
1. Enthält die fol noch Instanzen die zuvor aus der ListBox entnommen wurden? Können die Instanzen auch weiterhin in der Listbox enthalten sein? Wenn ja: Wurde die fol ObjectList im Constructor mit false angelegt? Wenn nicht, dann gibt sie mit Clear alle Instanzen frei und somit auch die in der ListBox.Items.Objects[]
2. Warum wird eine komplette ListBox übergeben anstatt einfach nur das TStrings Objekt?
3. aListBox.Count im Schleifenkopf: Ich wüsste nicht, dass ListBox einen Count auf der Ebene bietet. Es müsste eigentlich aListBox.Items.Count sein. Oder halt Punkt 2 umsetzen, dann würde es stimmen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz