Jetzt habe ich versucht:
TCallProc = reference to procedure[(parameterlist)];
Aber da damit geht es nicht:
E2010 Inkompatible Typen: 'TCallProc' und 'Procedure of object'
Mir ist nicht ganz klar, was bei der Definition von TCallProc jetzt wirklich gemeint ist. Grundsätzlich kann man einem Property vom Typ
reference to procedure auch eine parameterlose Klassenmethode zuweisen. Wichtig ist nur, daß die Signatur der Parameter passt.
Delphi-Quellcode:
type
{ geht beides }
TCallProc = TProc;
TCallFunc = TFunc<string>;
// TCallFunc = function: string of object;
// TCallProc = procedure of object;
type
TForm158 = class(TForm)
procedure FormCreate(Sender: TObject);
private
FCallFunc: TCallFunc;
FCallProc: TCallProc;
function TestFunc: string;
procedure TestProc;
public
property CallFunc: TCallFunc read FCallFunc write FCallFunc;
property CallProc: TCallProc read FCallProc write FCallProc;
end;
procedure TForm158.FormCreate(Sender: TObject);
begin
CallProc := TestProc;
CallFunc := TestFunc;
end;
function TForm158.TestFunc: string;
begin
Result := 'Hallo Welt';
end;
procedure TForm158.TestProc;
begin
end;