Die Methode Call sollte so aussehen:
Delphi-Quellcode:
procedure TCallerClass.Call;
var index: Integer;
x : TMyBaseClass; // Hilfsvariable
begin
//Annahme: Es seien mehrere Komponenten im Projekt enthalten.
REPEAT
self.DoIt; //self nur zur Verdeutlichung. Ich weiß, das der self Parameter hier weggelassen wird
for Index:=0 to self.ComponentCount-1 do
begin
x := Components[Index] as TMyBaseClass;
if Assigned(x) then
x.DoIt;
end;
UNTIL endebedingung; //Pseudocode
end;
Die Hilfsvariable x ist vom Datentyp der Klasse, in der du die virtuelle Methode DoIt() eingeführt hast.
Achja: die Hilfsvariable erleichtet uns das Leben, denn man braucht nur einmal zu Casten und
hat dann auch im Debugger den Vorteil mehr zu sehen als ohne die Hilfsvariable.