AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Record dynamisch (zur Laufzeit generieren)
Thema durchsuchen
Ansicht
Themen-Optionen

Record dynamisch (zur Laufzeit generieren)

Ein Thema von cYaONE · begonnen am 16. Jun 2003 · letzter Beitrag vom 18. Jun 2003
Antwort Antwort
cYaONE

Registriert seit: 18. Mai 2003
Ort: Sand am Main
192 Beiträge
 
Delphi 7 Personal
 
#1

Record dynamisch (zur Laufzeit generieren)

  Alt 16. Jun 2003, 20:17
Servus,

ist es möglich ein Record dynamisch zur Laufzeit zu generieren und wenn ja, wie?

Danke schonmal!
  Mit Zitat antworten Zitat
Delphianer

Registriert seit: 19. Feb 2003
Ort: Rossau
149 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2
  Alt 16. Jun 2003, 20:37
Hallo,

ich hoffe, ich habe Deine Frage richtig verstanden:
Delphi-Quellcode:
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;
Viele Grüße,

Lutz
Lutz
  Mit Zitat antworten Zitat
Basic-Master

Registriert seit: 9. Mär 2003
Ort: Brilon
395 Beiträge
 
Delphi 2007 Enterprise
 
#3
  Alt 18. Jun 2003, 16:24
oder willste z.b. n wert C zu nem record wärend der laufzeit adden?
Christian
  Mit Zitat antworten Zitat
cYaONE

Registriert seit: 18. Mai 2003
Ort: Sand am Main
192 Beiträge
 
Delphi 7 Personal
 
#4
  Alt 18. Jun 2003, 16:37
Ich will einen weiteren Typ zum record hinzufügen

Beispiel:

Delphi-Quellcode:
type
  TMyRecord = record
    Name: String;
  end;
und nachdem ich in zur Laufzeit hinzugefügt habe sollte es beispielsweise so aussehen:

Delphi-Quellcode:
type
  TMyRecord = record
    Name: String;
    Vorname: String;
  end;
Geht das?
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#5
  Alt 18. Jun 2003, 16:43
Jein. Was du machen kannst, ist einen varianten Teil in einem Record zu benutzen. Schau mal in der Delphi-Hilfe dazu nach.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Delphianer

Registriert seit: 19. Feb 2003
Ort: Rossau
149 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6
  Alt 18. Jun 2003, 17:30
Du kannst aber auch z.B. ein TMemIniFile verwenden:

Delphi-Quellcode:
type
* TMyRecord = record
* * Name: String;
    VarianterTeil: TMemIniFile;
* end;
Du mußt allerdings vor dem ersten Zugriff das MemIniFile anlegen
Code:
MyRecord.VarianterTeil := TMemIniFile.Create('');
und am Schluß alle MemIniFiles aufräumen.
Besser wäre es, wenn Du den Record in ein Object kapseltst.

Lutz

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
Lutz
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 18. Jun 2003, 20:07
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz