Oder die Generics -> reference to
Alle "offiziellen" Möglichkeiten, ohne an der automatischen Typbehandlung rumzupfuschen:
Delphi-Quellcode:
type
TTest = class
function A(): Boolean;
function B(): Boolean; virtual; // bzw. overload oder auch dynamic
class function C(): Boolean;
class function D(): Boolean; virtual; // bzw. overload oder auch dynamic
class function E(): Boolean; static;
end;
function F(): Boolean;
{
E entspricht F
A = C (nur eben TClass statt TObject, beim Self)
A und C auch mit Data/Self=NIL möglich
}
var
X: function(): Boolean; // E oder F
Y: function(): Boolean of object; // A, B, C oder D
Z: reference to function(): Boolean; // alles, inkl. anonymer Methoden (nicht direkt als VAR ... muß einen TYPE haben)
O: TTest;
L: class of TTest;
O := TTest.Create;
X := TTest.E; // oder L.E oder O.E inkl. O=nil
X := F;
Y := O.A; // auch O=nil
Y := O.B;
Y := TTest.C; // oder L.C oder O.C inkl. L=nil
Y := TTest.D; // oder L.D oder O.D
Z := egal was