Zitat von
Stevie:
Wenn sie nicht vorhanden sind, ist der Fall klar, dann geht's sowieso nicht. Wenn sie aber in einer Nachfahrenklasse überschrieben wurden, dann kommt diese Methode überhaupt nicht zum Zuge, sondern die in TWinControl. Deshalb das TypeCasting, damit mit der "richtigen" Klasse gearbeitet wird.
Moment. Drehen meine
OOP-Kenntnisse jetzt durch oder was ist los? Wozu gibt's Polymorphie? Damit ich einen Basisklassenzeiger (oder halt eine Referenz) wie TWinControl habe, dessen Methode aufrufe und trotzdem die Methode der Klasse, aus der das Objekt letztendlich instanziiert wurde (wie TEdit), ausgeführt wird. Oder nicht? Wo ist das Problem? Es wird doch immer die überschriebene Methode ausgeführt.
Denn du erkennst ja schon, das das nicht funktioniert, wenn die Funktion nicht in der Basisklasse enthalten ist, folglich beziehst du dich schon auf die Polymorphie (denn ohne Polymorphie bist du nicht daran gebunden, was du von wem aufrufst).
Oder ist das jetzt ein Denkfehler meinerseits und du willst was ganz anderes?