![]() |
Ein Array in einer TStringList als Object ablegen
Hallo Zusammen,
wie kann ich bitte ein Array in jeder enzelne TStringList.Item als Object ablegen? Wenn ich nur ein item in der Liste anlege funkt es einwandfrei. Sobald ein weiteres Item angelegt wird, sind die Arrays aller Items zerstört. Vermutlich wird nur ein Pointer in der Liste als Object abgelegt und nicht das komplette Array. Wenn ich eine Klasse erzeuge und daraus einzelne AdressObjekte inzanzieren würde, würde es vermutlich gehen. Die Frage ist, kann ich es auch mit einem Array? Hat jemand eine Idee wie das zu meistern ist? Gruß Kostas. Mein code vereinfach sieht so aus:
Delphi-Quellcode:
type TAdresse = Record
Namen:String; TelefonNr:String; end; type TAdressenAraay = Array of TAdresse; var AdressenAraay: TAdressenAraay; begin AdressListe:= TStringList.Create; //In einer Schleife das array befüllen und alle Items anlegen AdressListe.AddObject( Titel, TObject(AdressenAraay)); //Zum Auslesen des Arrays aus dem item, casten auf dem Ursprungstyp AdressenAraay := TAdressenAraay(AdressListe.Items.Objects[n]); |
Re: Ein Array in einer TStringList als Object ablegen
Wieso nimmst du eine TStringlist?
Bau dir doch aus TList eine neue Klasse zusammen! |
Re: Ein Array in einer TStringList als Object ablegen
Oder mach dir ein array-Object
Delphi-Quellcode:
type
TArrayedObject = class public A: TAdressenAraay; end; |
Re: Ein Array in einer TStringList als Object ablegen
Nur ein paar schnelle Anmerkungen:
TStringList hat keine Eigenschaft Items. Kann man überhaupt ein Array unfallfrei zum Object casten??? |
Re: Ein Array in einer TStringList als Object ablegen
Zitat:
So habe ich es jetzt gemacht, und es funkt einwandfrei. Ich erzeuge jedes mal eine neue Instanz aus der Klasse, übergebe der neuen Instanz das Array, und übergebe danach die Instanz als Object in der TListBox. Die Frage ist jetzt noch, wenn ich TListBox.Items.Clear anwende, werde alle Texte und dessen Objekte laut Doku gelöscht. Gild das auch in meinem Fall! ich habe ja mehrere instanzen der Klasse per Create angelegt. Muss ich jetzt also nicht mehr die Items durchgehen und alle Objekte auf nil setzen? Gruß Kostas |
Re: Ein Array in einer TStringList als Object ablegen
Hallo!
Da du ja nun ein Objekt ablegst: Warum verwendest du nicht einen Nachfahren von TList anstelle des Arrays, um dann einfacher zusätzliche Funktionalitäten implementieren zu können? Cu, Udontknow |
Re: Ein Array in einer TStringList als Object ablegen
|
Re: Ein Array in einer TStringList als Object ablegen
Zitat:
Ich habe bis jetzt noch nie TList verwendet. Auch mit eigene Klassen war ich sehr sparsam. Aus Gewohnheit verwende ich Arrays und Records. Aber meine Gewohnheiten werde ich gleich mal ändern b.z.w erweitern. :-) Danke für den Hinweis. :-) Gruß Kostas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:31 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