Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TStringList-Objekte auslesen (https://www.delphipraxis.net/7935-tstringlist-objekte-auslesen.html)

Taladan 24. Aug 2003 20:02


TStringList-Objekte auslesen
 
Ich fülle eine Stringliste mit folgenden unten angegeben code. also nicht direkt mit strings sondern mit objekten. was ja laut OH geht. Doch wie frag ich nun die einzelnen werte der objekte ab? Wie erhalte ich jetzt aus dem Wert 1 (Der zweite in der liste) den Namen Katze?

Delphi-Quellcode:
type
  ORasse = class(TObject)
  public
    Name : String[40];
    ID  : Integer;
  end;

var
  Rassenliste : TStringList;

procedure TSchritt2.RassenErstellen;
var Rasse : ORasse;
begin
    Rassenliste := TStringList.create;
    Rasse := ORasse.create;

    Rasse.Name := 'Hunde';
    Rasse.ID  := 0;
    Rassenliste.addobject(inttostr(Rasse.id), Rasse);

    Rasse := ORasse.create;
    Rasse.Name := 'Katzen';
    Rasse.ID  := 1;
    Rassenliste.addobject(inttostr(Rasse.id), Rasse);

    Rasse := ORasse.create;
    Rasse.Name := 'Vögel';
    Rasse.ID  := 2;
    Rassenliste.addobject(inttostr(Rasse.id), Rasse);
end;
Delphi-Quellcode:
   showmessage (rassenliste[1].rasse) //???? so zumindest nicht.

Christian Seehase 24. Aug 2003 20:09

Re: TStringList-Objekte auslesen
 
Moin Taladan,

auslesen kannst Du das zugewiesene Objekt über die Eigenschaft Objects der StringListe.
Was mir allerdings nicht so recht klar ist:
Warum benutzt Du eine StringListe, und nicht einfach ein Array Deines Datentyps?
Warum nimmst Du ein Object, statt eines Records (so wie's im Moment aussieht reicht der völlig)?

Taladan 24. Aug 2003 20:36

Re: TStringList-Objekte auslesen
 
Es sind NOCH wenig Werte, steigen aber gewaltig an.
Zudem ich ein Array nicht per Stream in eine Datei packen kann. Was erst später integriert wird, wenn ich den Code stehen hab. Ich versuche die einzelnen Dateien, vor allem die Exe möglichst klein zu halten. Zudem das Programm als Modulsystem aufgebaut wird. Dementsprechend werden die Hund und Katze im Basismodul sein, und Maus und Elefant in Zusatzmodulen.

Auf Objects kam ich auch schon, wie sieht den der Code aus. Ich doktere schon länger daran rum und es klappt irgendwie nicht.

Christian Seehase 24. Aug 2003 20:57

Re: TStringList-Objekte auslesen
 
Moin Taladan,

ich denke mal so:

Delphi-Quellcode:
showmessage((rassenliste.Objects[1] as ORasse).rasse);
Übrigens ist es Konvention (wenn natürlich nicht zwingend vorgeschrieben), dass Typdeklarationen mit einem T beginnen.

Taladan 24. Aug 2003 21:04

Re: TStringList-Objekte auslesen
 
Fast richtig, aber dankäää.

Delphi-Quellcode:
     
listbox1.items.add((rassenliste.Objects[1] as ORasse).name);

Touchdown 24. Aug 2003 21:51

Re: TStringList-Objekte auslesen
 
Sehr schönes kleines Beispiel für OOP.

Wer braucht schon Records und Arrays, man kann alles mit Objekten lösen :mrgreen:

In Verbindung mit der Eigenschaft 'Sorted' kannst du auch sehr schnell die Liste nach ID sortieren lassen, die Objekte werden mit verschoben, falls eine Sortierung vorgenommen wurde :hello:

Einziger Vorteil von Records und Arrays sind unter Umständen weniger Speicherbedarf. Who cares? :witch:

Taladan 25. Aug 2003 09:54

Re: TStringList-Objekte auslesen
 
Dann sag mir doch mal bidde, wie ich oben genanntes OOP - Fähig bekomme. Denn alles was ich man in vorarbeit für den PC geeignet abspeichern kann (insbesondere Sortierung), macht mir das Programm schneller. (Bei heutigen PC´s nicht unbedingt eine selbstverständliche Art zu programmieren *schaut sich Windoof an*)

[edit=Daniel B]Doppelpost gelöscht. Mfg, Daniel B[/edit]

Touchdown 30. Aug 2003 16:20

Re: TStringList-Objekte auslesen
 
Wie jetzt? Das ist OOP!


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 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