Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dynamische records (https://www.delphipraxis.net/109506-dynamische-records.html)

steppo 2. Mär 2008 22:30


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

Phoenix 2. Mär 2008 22:32

Re: Dynamische records
 
nein. em ehesten lässt sich sowas mit einem dynamischen array of object abbilden.

steppo 2. Mär 2008 22:38

Re: Dynamische records
 
Wow das war schnell, Danke! Hast du vielleicht noch ein Beispiel?

Gruß Steppo

Wishmaster 2. Mär 2008 23:29

Re: Dynamische records
 
Hi
Delphi-Quellcode:

 Type
   Tdata = Array of Integer, string, ....?



  SetLength(Tdata, 10 or ?)

Muetze1 3. Mär 2008 00:56

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;

dominikkv 3. Mär 2008 06:36

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:
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;
Jetzt musst du nur noch die Setter und Getter schreiben :stupid:

sirius 3. Mär 2008 08:09

Re: Dynamische records
 
Ein "Variant" wäre vielleicht etwas für dich. Das kann verschiedene Datentypen aufnehmen, u.a. ein Array.

steppo 3. Mär 2008 15:07

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