Einzelnen Beitrag anzeigen

Ralf Meyer

Registriert seit: 24. Mär 2008
36 Beiträge
 
#1

Methodenaufruf einer bestimmten Klasse erzwingen

  Alt 20. Nov 2010, 10:02
Die Methode meiner realen Klasse wird nicht aufgerufen, wie bekomme ich das hin.

Mein Code:

Delphi-Quellcode:
Type
  tMyList = class( tList )
    Procedure Add( Const cClass : tMyBaseClass ) ;
  End ;

  tMyclassDef = class of tMyBaseClass ;
  tMyBaseClass = class
    classTyp : tmyClassDef ;
    Procedure Clone ; Virtual ;
  End ;

  tMySpezielleKlasse = class ( myBaseClass )
    Procedure Clone ; Override ;
  End ;

  ...

    abc := tMySpezielleKlasse.create ;
    abc.ClassType := tMySpezielleKlasse ;

    List := tMytMyList.create ;
    List.Add ( abc ) ;

    // jetzt kommt das Problem
    ab_neu := tMyBaseClass( List[0] ).Clone ; // ruft das Clone von tMyBaseClass auf

    lClassType := tMyBaseClass( List[0] ).ClassType ;
    ab_neu := ( List[0] as lClassType ).Clone ; // ruft auch das Clone von tMyBaseClass auf

    // da wichtige Objekte Instanziert werden müssen, muss das Clone meiner speziellen
    // Klasse aufgerufen werden
  ...
Ich müsste irgendwie den Aufruf der abgeleiteten Klasse erzwingen - aber wie?

Weiß jemand einen Rat. Gruß
  Mit Zitat antworten Zitat