Du könntest auch Anonyme Methoden verwenden.
http://docwiki.embarcadero.com/RADSt...oden_in_Delphi
Dadurch kannst du TNodeFunction sowohl eine andere Funktion als auch inline-deklarationen von Funktionen zuweisen (SomeOtherFunc)
Delphi-Quellcode:
interface
type
TNodeFunction = reference to function(AInput: String): String;
implementation
function Func1(AInput: String): String;
begin
result := AInput;
end;
function Func2(AInput: String): String;
begin
result := 'Fooled You';
end;
procedure Demonstration;
var
SomeFunc, SomeOtherFunc: TNodeFunction;
begin
SomeOtherFunc := function (AInput: String): String; begin Result := UpperCase(AInput); end;
SomeFunc := Func1;
SomeFunc('Hello'); // returns 'Hello'
SomeFunc := Func2;
SomeFunc('Hello'); // returns 'Fooled You'
SomeOtherFunc('lower case'); // returns 'LOWER CASE'
end;