Hi,
ich möchte hier nur kurz noch den
OOP Ansatz der Vollständigkeit halber zugeben:
Du kannst so was natürlich auch immer in einem Interface/einer abstrakten Klasse einführen und dann verwenden:
Delphi-Quellcode:
type
TAbstractComputer = class(TObject)
public
function compute(x : Real) : Real; virtual; abstract;
end;
TConcreteComputer = class(TVorfahrTyp)
public
function compute(x : Real) : Real; override; // hier natürlich dein Implementierung
end;
Ja, dann kannst du später einfach einen Aufruf mit einem beliebigen Nachfahren starten
Delphi-Quellcode:
procedure doFoo(const instance : TAbstractComputer);
begin
if assinged(instance) then
begin
instance.compute(<Das Argument>);
end;
end;
Das ganze entspricht dann einfach nur dem Objektorientierten Ansatz (den man überall dort verwenden müsste, wo es schon keine Funktionszeiger gibt). Ist sogar ein Designpattern (wie gesagt der Vollständigkeit halber)
Gruß Der Unwissende