Einzelnen Beitrag anzeigen

blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#1

Zu unbekanntem Klassenderivat casten?

  Alt 12. Mär 2009, 22:21
Hallo.

Ich habe folgendes Problem: Ich möchte ein Objekt kopieren, weiß aber zur Laufzeit nicht, um welche Klasse es sich handelt.

Der Code sieht in etwa so aus:

Delphi-Quellcode:
type
  TBasis = class(TObject);
  TAbleitungA = class(TBasis);
  TAbleitungB = class(TBasis);

var
  test, kopie: TBasis;

begin
  test := GibtMirWas(); // gibt entweder TAbleitungA oder TAbleitungB

  // Versuche: Kopie anlegen
  {Versuch 1} kopie := test.ClassType.Create; // Problem: Wie TObject nach "test.ClassType.ClassName" casten? Ich will am Ende aber ein TAbleitungX und kein TBasis haben...
  {Versuch 1} kopie := test.NewInstance; // Problem: Das selbe

  kopie.feld := 'ABC'; // wegen dieser Veränderung darf die originale Klasse nicht verwendet werden.

  MeineFunktion(kopie);
end;
Wie kann ich das machen?

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat