Servus,
ich habe nal noch eine Frage zum Thema objektorientierung.
Delphi-Quellcode:
TFoo = class(TObject)
procedure test;
end;
TBar = class(TFoo)
procedure test; override;
end;
Wenn ich nun eine Instanz von TBar habe, und diese an eine Methode reiche, die TFoo entgegennimmt:
Delphi-Quellcode:
procedure TFooBarHandler.DoSomething(inst:TFoo)
begin
inst.Test;
end;
FooBarHandler.DoSomething(TBar.Create);
Wie bekomme ich es hin, dass zunächst die überschriebene Methode "test" von meiner TBar-Instanz gerufen wird.
Ich möchte als quasi so was hier machen:
Delphi-Quellcode:
TFBClass = class of TFoo;
procedure TFooBarHandler.DoSomething(inst:TFoo)
var
c:TFBClass;
begin
c := TFoo.GetClassInfo; // <- liefert z.b. TBar
c(inst).Test; // <- cast zu einer klasse, die erst zur laufzeit bekannt ist.
end;
Ich glaube ich habe nur ein Brett vorm Kopf, denn eigentlich ist doch eine völlig triviale Situation oder?
Vielen Dank dpler.