System.TObject.MethodAddress

Aus Appmethod Libraries
Wechseln zu: Navigation, Suche

Object Pascal

class function MethodAddress(const Name: _ShortStr): Pointer; overload;
class function MethodAddress(const Name: string): Pointer; overload;

C++

__classmethod void * __fastcall MethodAddress(const ShortString &Name)/* overload */;
__classmethod void * __fastcall MethodAddress(const UnicodeString Name)/* overload */;

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
function public
System.pas
systobj.h
System TObject

Beschreibung

Gibt die Adresse einer Klassenmethode per Namen zurück.

In manchen Situationen ist es hilfreich, wenn Objektmethoden aufgerufen werden können, ohne dass deren Methodennamen im Voraus hat-codiert worden sind. Mit MethodAddress können Sie die Adresse einer solchen Methode dynamisch ermitteln, indem Sie den Methodennamen als String angeben.

Die Methode kann einfach über die Definition eines Prozeduren- oder Funktionsdatentyps aufgerufen werden. Zum Beispiel:

type TProc = procedure of object;

Weisen Sie den Objektnamen und die MethodAddress einer TMethod-Variablen zu, wie z.B.:

MethodVar.Data := Pointer(ObjectInstanceName);
MethodVar.Code := ObjectInstanceName.MethodAddress('MethodNameString');

Und übergeben Sie diese in einem Variablenaufruf des Prozeduren- oder Funktionstyps:

Proc := TProc(MethodVar);
Proc;

Siehe auch