System.TObject.MethodAddress

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

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 anhand des Namens zurück.

Hinweis: MethodAddress kann nur für als published deklarierte Methoden verwendet werden.

In manchen Situationen ist es sinnvoll, eine Objektmethode aufzurufen, ohne den Methodennamen im Voraus hart zu codieren. 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 einer TMethod-Variable den Objektnamen und die Methode MethodAddress zu, wie z. B.:

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

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

Proc := TProc(MethodVar);
Proc;

Siehe auch