Rückruf einer Klasse


Dieser Artikel veranschaulicht, wie eine Instanz einer Klasse als Rückruf verwenden.
Wenn Sie einen Windows-Rückruf eine Instanz einer Klasse aufrufen wollte, ersetzen Sie einfach TMyClass mit dem Classname und TMyClass.MyCallBack mit Ihren Methodennamen.
Typ
TCallbackThunk = packed Record
POPEDX: Byte;
MOVEAX: Byte;
SelfPtr: Zeiger;
PUSHEAX: Byte;
PUSHEDX: Byte;
JMP: Byte;
JmpOffset: Integer;
Ende;
var
Rückruf: TCallbackThunk;
beginnen
geerbte erstellen;
Callback.POPEDX: = $5A;
Callback.MOVEAX: = $B8;
Callback.SelfPtr: = Self;
Callback.PUSHEAX: = $50;
Callback.PUSHEDX: = $52;
Callback.JMP: = $E9;
Callback.JmpOffset: = Integer(@TMyClass.MyCallBack). - Integer(@Callback.JMP) - der 5;
Rufen Sie die WINAPI hier, übergeben @CallBack an die Rückruf-Proc, zum Beispiel
EnumSystemLocales(TFNLocaleEnumProc(@Callback), LCID_SUPPORTED);
Ende;









Rückruf einer Klasse


Rückruf einer Klasse : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


Dieser Artikel veranschaulicht, wie eine Instanz einer Klasse als Rückruf verwenden.
Wenn Sie einen Windows-Rückruf eine Instanz einer Klasse aufrufen wollte, ersetzen Sie einfach TMyClass mit dem Classname und TMyClass.MyCallBack mit Ihren Methodennamen.
Typ
TCallbackThunk = packed Record
POPEDX: Byte;
MOVEAX: Byte;
SelfPtr: Zeiger;
PUSHEAX: Byte;
PUSHEDX: Byte;
JMP: Byte;
JmpOffset: Integer;
Ende;
var
Rückruf: TCallbackThunk;
beginnen
geerbte erstellen;
Callback.POPEDX: = $5A;
Callback.MOVEAX: = $B8;
Callback.SelfPtr: = Self;
Callback.PUSHEAX: = $50;
Callback.PUSHEDX: = $52;
Callback.JMP: = $E9;
Callback.JmpOffset: = Integer(@TMyClass.MyCallBack). - Integer(@Callback.JMP) - der 5;
Rufen Sie die WINAPI hier, übergeben @CallBack an die Rückruf-Proc, zum Beispiel
EnumSystemLocales(TFNLocaleEnumProc(@Callback), LCID_SUPPORTED);
Ende;


Rückruf einer Klasse

Rückruf einer Klasse : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Rückruf einer Klasse
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung