Das Problem ist m.E. das: "in meiner Classe".
Schreib die prozedur mal ausserhalb global.
und dann so:
procedure BeforeLoadData<TData>;
Ich vermute Du wirst die Fremdkomponenten nicht ändern können. Sonst wäre besser:
Delphi-Quellcode:
type
TBeforeLoadProc<TData> = reference to procedure(const Arg: TData);
(Alles ungetestet)