AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Ein Array in einer TStringList als Object ablegen
Thema durchsuchen
Ansicht
Themen-Optionen

Ein Array in einer TStringList als Object ablegen

Ein Thema von Kostas · begonnen am 15. Jan 2007 · letzter Beitrag vom 15. Jan 2007
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.058 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Ein Array in einer TStringList als Object ablegen

  Alt 15. Jan 2007, 13:51
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]);
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Ein Array in einer TStringList als Object ablegen

  Alt 15. Jan 2007, 14:01
Wieso nimmst du eine TStringlist?

Bau dir doch aus TList eine neue Klasse zusammen!
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#3

Re: Ein Array in einer TStringList als Object ablegen

  Alt 15. Jan 2007, 14:05
Oder mach dir ein array-Object

Delphi-Quellcode:
type
  TArrayedObject = class
  public
    A: TAdressenAraay;
  end;
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Ein Array in einer TStringList als Object ablegen

  Alt 15. Jan 2007, 14:39
Nur ein paar schnelle Anmerkungen:

TStringList hat keine Eigenschaft Items.

Kann man überhaupt ein Array unfallfrei zum Object casten???
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.058 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: Ein Array in einer TStringList als Object ablegen

  Alt 15. Jan 2007, 14:45
Zitat von arbu man:
Oder mach dir ein array-Object

Delphi-Quellcode:
type
  TArrayedObject = class
  public
    A: TAdressenAraay;
  end;
Besten Dank für die schnelle Hilfe.

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
  Mit Zitat antworten Zitat
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#6

Re: Ein Array in einer TStringList als Object ablegen

  Alt 15. Jan 2007, 15:10
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Ein Array in einer TStringList als Object ablegen

  Alt 15. Jan 2007, 16:08
Siehe hier: http://www.delphipraxis.net/internal...=664683#664683
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.058 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

Re: Ein Array in einer TStringList als Object ablegen

  Alt 15. Jan 2007, 16:12
Zitat von Udontknow:
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
Eine berechtigte Frage.
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
  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 14:47 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