Hallo,
da ich immer noch nicht zu 100% fit bzgl Interfaces bin, hier eine Frage.
Ich möchte eine Funktion als Parameter übergeben. So wie es sonst geht, funktioniert es leider nicht.
Hier meine Deklarationen:
Delphi-Quellcode:
type
TMeineFunktion = function( const Param: TJSONObject): TJSONObject;// of object;
IMeinInterface = interface(IInvokable)
['{A...0}']
function DieFunktion( const Param: TJSONObject): TJSONObject;
end;
Jetzt möchte ich die Funktion als Parameter übergeben. Grund ist, das ich bestimmt 100 Stellen hbe, bei denen immer wieder das gleiche gemacht wird. Neben einem String ist nur die Interface-Funktion variabel.
Ich will nicht 100 Mal den selben Code schreiben (ca. 20-30 Zeilen).
Delphi-Quellcode:
var
EinInterfaceObjekt: IMeinInterface;
begin
// Initialisierungen ...
Ergebnis := Rechenfunktion( EinString, EinInterfaceObjekt.DieFunktion);
end;
Ich bekomme immer Parameterfehler.
Alternativen:
Delphi-Quellcode:
@EinInterfaceObjekt.DieFunktion
Addr(EinInterfaceObjekt.DieFunktion)
var xx: TMeineFunktion;
with EinInterfaceObjekt do
xx := @DieFunktion;
gehen alle nicht.
Geht das grundsätzlich nicht oder habe ich einfach noch keine Ahnung, wie damit umzugehen ist?
Für eine schnelle Hilfe wäre ich sehr dankbar.
VG
Thomas