Eigentlich ist es recht einfach.
mögliche Funktionen/Methoden:
Delphi-Quellcode:
type
TMyClass = class
function Test2(...): ...;
class function Test3(...): ...;
end;
function Test1(...): ...;
begin
end;
und die zugehörigen Deklarationen für entsprechende Funktions-/Methoden-Zeiger, an welche man Diese übergeben könnte:
Delphi-Quellcode:
type
TTest1 = function(...): ...;
TTest2 = function(...): ... of object;
TTest3 = function(...): ... of class;
TMegaTest = reference to function(...): ...;
1: normale Funktionen/Prozeduren
2:
Objekt-Methoden (Funktionen eines instantiierten Objekts)
3:
Klassen-Methoden (Funktionen einer Klasse ohne Objektinstanz)
Ob man diese Typen jetzt für Property oder für Parameter nimmt, ist dabei egal.
Das TCustomsort war mir nur eingefallen, weil es da mal als Parameter genutzt wird, aber leider war das nur ein Beispiel für eine "normale" Funktion.
[edit]
die 3 ist falsch: für Klassenmethoden nimmt man auch das
of Object
, nur daß dann der interne Objektzeiger als Zeiger auf die Klasse mißbraucht wird.
TMegaTest nimmt eigentlich fast alles auf, was es irgendwie gibt ... sogar die anonymen Methoden.
Aber dieses gibt es erst seit Delphi 2010 (oder so).