Es muss einfach nur der Name einer Prozedur übergeben werden, welche dem Typ "TProc<TData>" gerecht wird.
Also müsste es völlig ausreichen, deine Methode so zu deklarieren:
Code:
Procedure BeforeLoadData(arg : TData);
Damit müsste dann die gewünschte Methode aufrufbar sein:
Code:
LoadData(BeforeLoadData);
Leider nicht. Delphi meckert "Inkompatible Typen: System.Sysutils.TProc<TData> und Procedure of Object. "die Übergabe weil ich die Proc falsch angelegt habe. Deshalb der Versuch due Procedure zu typisieren.
Ob das die Ursache ist, keine Ahnung.
Delphi-Quellcode:
type
TBeforeLoadProc<TData> = reference to procedure(const Arg: TData);
Delphi akzeptiert den Typ so, do wie kann ich die Procedure diesen Typs anlegen?