![]() |
denkfehler bei array? ObjectList
hallo zusammen,
mit
Delphi-Quellcode:
füge ich 2 Objecte zu der Liste hinzu und "fülle" sie mit Zutaten.
ObjectList := TObjectList.create;
Frezept := Trezept.create(self); ObjectList.Add(Frezept); ObjectList.Add(Frezept); Trezept(ObjectList[0]).zutat[0] := 'Milch'; Trezept(ObjectList[1]).zutat[0] := 'Wasser'; warum zeigt mir
Delphi-Quellcode:
2 mal das gleiche an, nämlich Wasser?showmessage(Trezept(ObjectList[0]).zutat[0]); showmessage(Trezept(ObjectList[1]).zutat[0]); |
Re: denkfehler bei array? ObjectList
Du Hast der Objectlist zwei mal das gleiche Objekt zugewiesen.
objectlist[0] und objectlist[1] zeigen beide auf das gleiche objekt. Somit dürfte zuerst der Wert "Milch" zugewiesen werden. Diese wird dann mit "Wasser" überschrieben. So wäre es richtig:
Delphi-Quellcode:
ObjectList := TObjectList.create;
Frezept := Trezept.create(self); ObjectList.Add(Frezept); Frezept := Trezept.create(self); ObjectList.Add(Frezept); Trezept(ObjectList[0]).zutat[0] := 'Milch'; Trezept(ObjectList[1]).zutat[0] := 'Wasser'; Gerd |
Re: denkfehler bei array? ObjectList
ich danke dir
heisst ich muss jedes object das ich in der Liste speichere, separat erstellen, auch wenn die Namen identisch sind: |
Re: denkfehler bei array? ObjectList
Natürlich, da eine Objektinstanz ja nur ein Zeiger ist. Fügst Du den mehrfach ein und änderst die dahinterstehenden Daten, änderst Du sie überall ;)
|
Re: denkfehler bei array? ObjectList
Zitat:
ich danke euch |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz