![]() |
Container(Listen) für Records?
Hi!
Gibt es keine Container(-liste) für Records? (so wie TObjectlist) Müsste ich, wenn ich mir dann eine Klasse, die nur aus String & Integer Eigenschaften besteht, per .Create-Aufruf erzeugen? Danke! |
Re: Container(Listen) für Records?
Wenn du den Speicher für deine Records selber reservierst (nicht über eine Variable), dann kannst du den Pointer zu diesem Record auch locker in sowas wie TObjectList speichern,
denn die TObjetctList ist ja auch nichts anderes, als eine Liste mit Pointern auf den Speicher der enthaltenen Objekte. |
Re: Container(Listen) für Records?
Zitat:
Delphi-Quellcode:
erzeugen, sonst gibt's üble Probleme bei der Freigabe der Liste :wink: Besser wäre vielleicht eine TList.
List := TObjectList.Create(False);
Gruß Hawkeye |
Re: Container(Listen) für Records?
Danke für die schnellen Antworten!
Ich glaube, ich werde aber eh eher eine Klasse erstellen und diese über eine TObjectList verwalten. Wozu hat man denn auch eine objektorientierte Sprache? :-) Aber hierzu nochmal der Verweis zu meiner vorigen Frage: Muss man nun eine Variable einer Klasse createn, wenn die Klasse wie folgt aussieht:
Code:
Oder reicht auch eine einfache Deklaration?
TFormat = class(TObject)
Name: String; FontName: String; FontSize: Integer; FontStyle: TFontStyle; FontColor: TColor; FontAlign: TAlignment; NextFormat: String; public constructor Create; //?? wird das benötigt? destructor Destroy; //?? wird das benötigt? procedure WriteFormat(fName, fFontName: String; fFontSize: Integer; fFontStyle: TFontstyle; fFontColor: TColor; fFontAlign: TAlignment; fNext: String); procedure SaveToFile(fFileName: String); procedure LoadFromFile(fFileName: String); end;
Code:
var
format: tformat; begin format.name:='test'; end; |
Re: Container(Listen) für Records?
Hallo,
die einfache Deklaration reicht nicht aus, da es sich um dynamische Datenstrukturen handelt. Du mußt die Objekte erzeugen und auch wieder freigeben:
Delphi-Quellcode:
Gruß Hawkeye
Format := TFormat.Create;
: Format.Free; |
Re: Container(Listen) für Records?
Ok, passt.
Das .Free übernimmt in meinem Fall dann aber die ObjectList per ObjectList.Delete(index), oder? |
Re: Container(Listen) für Records?
Ja, wenn
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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