![]() |
Record dynamisch (zur Laufzeit generieren)
Servus,
ist es möglich ein Record dynamisch zur Laufzeit zu generieren und wenn ja, wie? Danke schonmal! |
Hallo,
ich hoffe, ich habe Deine Frage richtig verstanden:
Delphi-Quellcode:
Viele Grüße,
type
TMyRecord = record A, B: Integer; end; PMyRecord = ^TMyRecord; var MyRecord: PMyRecord; ... begin New(MyRecord); try MyRecord^.A := 1; MyRecord^.B := 2; ... finally Dispose(MyRecord); end; end; Lutz |
oder willste z.b. n wert C zu nem record wärend der laufzeit adden?
|
Ich will einen weiteren Typ zum record hinzufügen
Beispiel:
Delphi-Quellcode:
und nachdem ich in zur Laufzeit hinzugefügt habe sollte es beispielsweise so aussehen:
type
TMyRecord = record Name: String; end;
Delphi-Quellcode:
Geht das?
type
TMyRecord = record Name: String; Vorname: String; end; |
Jein. Was du machen kannst, ist einen varianten Teil in einem Record zu benutzen. Schau mal in der Delphi-Hilfe dazu nach.
|
Du kannst aber auch z.B. ein TMemIniFile verwenden:
Delphi-Quellcode:
Du mußt allerdings vor dem ersten Zugriff das MemIniFile anlegen
type
* TMyRecord = record * * Name: String; VarianterTeil: TMemIniFile; * end;
Code:
und am Schluß alle MemIniFiles aufräumen.
MyRecord.VarianterTeil := TMemIniFile.Create('');
Besser wäre es, wenn Du den Record in ein Object kapseltst. Lutz [edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit] |
Moin Cyaone,
so wie Du es beschrieben hast, wird es nicht gehen. Du könnstest lediglich einen eigenen Typ als Pointer festlegen, und bei Bedarf dann entsprechend der erforderlichen Recordgrösse Speicher reservieren. Zusätzlich legst Du dann ein Template fest, z.b. als Tabelle in der dann gespeichert wird ab welcher Adresse des Buffers welches Feld des Records liegt, als welcher Typ es angesehen werden soll.... Oder hast Du eine feste Maximalgrösse, und benötigst nur mehrere verschiedene Aufteilungen? Dann wäre Chewies Tip die Lösung. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 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