Statische Methoden werden vom Compiler direkt in Funktionsaufrufe umgewandelt.
wuppdi.narf(42) wird zu narf(
wuppdi, 42), also Self wird als Parameter hinzugefuegt. Solange narf nun nicht auf Self zugreift geht alles gut.
Das was hier als Methodenzeiger bezeichnet wurde ist einfach ein TMethod-Record. Da liegt auch der Ansatzpunkt.
Delphi-Quellcode:
TMethod = record
Code, Data: Pointer;
end;
In Code ist der Zeiger auf die Funktion enthalten, waehrend Data Self enthaelt. Man sollte also TAusgabe zu einem TMethod umtypen koennen und dann eine Funktion zuweisen koennen. Bediungung ist natuerlich das die Funktion wie TAusgabe plus Self-Parameter deklariert ist.
Irgendwie macht das alles aber keinen Sinn. Man kann doch eine class function deklarieren und dann braucht man keine Instanz des Objektes mehr.