Einzelnen Beitrag anzeigen

Dax
(Gast)

n/a Beiträge
 
#7

Re: verschiedene Datentypen" zusammenfassen"

  Alt 22. Feb 2005, 18:12
Du hast in jedem Knoten in obigem Code ein Element des Typs TDaten. Dieses änderst du einfach in TDatenBasis um und definierst wie folgt:
Delphi-Quellcode:
type
  TDatenBasis = class
  public
    // Eine Beispielmethode
    procedure Work; virtual; abstract;
  end;
In den Rumpf der Klasse fügst du noch die Methoden ein, die du zum arbeiten brauchst. Da du nicht weißt, mit welchen Typ von Daten du arbeiten wirst, definierst du die Methoden als abstract, also ohne Code. Den Code musst du später schreiben, wenn du deine Klasse, z.B. TInteger von der Basisklasse ableitest:
Delphi-Quellcode:
type
  TInteger = class(TDatenBasis)
  private
    fDaten: Integer;
  public
    procedure Work; override;
  end;

// Weiteres in der Unit

procedure TInteger.Work;
begin
  // Mache was mit fDatan oder anderen Dingen
end;
Weil du in der Basisklasse bereits alle Methoden, die du später brauchst, definiert hast, kannst du ohne umständlicher und eventuell gefährliche Typecasts mit deinen String-, Integer-, Char-, Floating-Point-Klassen usw. arbeiten. Je nach belieben und dem angestrebten Funktionsumfang kannst du beliebig viele dieser Methoden hinzufügen.

PS: Hagens Methode ist viel einfacher. Du deklarierst dein Feld nicht als TDaten, sondern als Delphi-Referenz durchsuchenVariant und kannst mit diesem Variant arbeiten, als wäre es gleichzeitig Integer, String, Floating-Point-Zahl, Zeichen...
  Mit Zitat antworten Zitat