![]() |
Dynamische records
Hallo Leute,
gibt es eine Möglichkeit ein Record dynamisch zu erstellen oder anzupassen. Zum Verständnis: ich habe eine unbekannte anzahl zusammengehöriger Werte. Nun möchte ich ein Dynamisches array erstellen, indem ein record mit zusammengehörigen Werten abgelegt wird. Gruß Steppo |
Re: Dynamische records
nein. em ehesten lässt sich sowas mit einem dynamischen array of object abbilden.
|
Re: Dynamische records
Wow das war schnell, Danke! Hast du vielleicht noch ein Beispiel?
Gruß Steppo |
Re: Dynamische records
Hi
Delphi-Quellcode:
Type Tdata = Array of Integer, string, ....? SetLength(Tdata, 10 or ?) |
Re: Dynamische records
Wenn der Record an sich konstant ist und nur die Anzahl der Records dynamisch, dann klappt das wie unten angegeben:
Delphi-Quellcode:
type
TRecord = record // your data end; type TRecordArray = array of TRecord; ... var lRecordList: TRecordArray; begin SetLength(lRecordList, 20); for i := 0 to 29 do lRecodList[i].yourdata end; |
Re: Dynamische records
Wenn die zu speichernden Daten sich nicht vom Typ unterscheiden kannst du auch ein Array of Array of [Datentyp] nehmen.
Ansonsten würde ich auch ein Array of [Object] nehmen, dort kannst du die daten dann verwalten.
Delphi-Quellcode:
Jetzt musst du nur noch die Setter und Getter schreiben :stupid:
type
TDatenContainer = class private fIntArray: Array of Integer; fStrArray: TStringList; fFloatArray: Array of Double; public constructor Create; // hier fStrArray erzeugen destructor Destroy; // und hier freigeben property IntAr[i: Integer]: Integer read GetInt write SetInt; property StrAr[i: integer]: String read GetStr write SetStr; property FloAr[i. integer]: Double read GetFloat write SetFloat; end; TMeineDaten: Array of TDatenContainer; var MeineDaten: TMeineDaten; |
Re: Dynamische records
Ein "Variant" wäre vielleicht etwas für dich. Das kann verschiedene Datentypen aufnehmen, u.a. ein Array.
|
Re: Dynamische records
Hi Leute,
danke für die vielen Antworten. Werde sie nach und nach ausprobieren. Gruß Steppo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 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