Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#8

Re: Einer Routine einen beliebigen Record übergeben

  Alt 28. Sep 2004, 22:39
Delphi-Quellcode:
type
 TAbstractSettings = class(TObject)
 protected
   procedure Save(Stream: TStream); virtual; abstract;
   procedure Load(Stream: TStream); vietual; abstract;
 end;

 TTestSettings = class(TAbstractSettings)
 private
   FLeftPos: Integer;
   FRightPos: Integer;
 public
   property LeftPos..... bla bla usw.
 end;
Obiges Klassenkonstrukt ist nichts anderes als ein Record, ein Record mit Properties, virtuellen Methoden, Events, Typsicherheit, Zugriffsmethoden etc.pp.
Was spricht also für generische Records und was spricht gegen Klassen ?

Falls du wirklich ganz ganz generische Records benutzen willst, also KEINE vollständigen Objecte bei denen man Methoden selber schreiben will so kann man denoch Klassen dazu benutzen. Man deklariert einfach eine X'beliebige Klasse abgeleitet von TObject und alle Felder als published. Die globale und procedurale Lade/Speicher Routine kann nun mit Hilfe der RTTI dieser Klasse dynamisch zur Laufzeit die Felder und deren Typen ermitteln und deren Inhalte laden und speichern.

Gruß Hagen
  Mit Zitat antworten Zitat