System.TObject.MethodAddress

De RAD Studio API Documentation
Aller à : navigation, rechercher

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 */;

Propriétés

Type Visibilité  Source Unité  Parent
function public
System.pas
systobj.h
System TObject


Description

Renvoie l'adresse d'une méthode de classe en spécifiant son nom.

Remarque : Vous pouvez utiliser MethodAddress uniquement pour les méthodes publiées.

Il est utile dans certaines situations d'invoquer une méthode d'objet sans coder en dur le nom de la méthode à l'avance. Appelez la méthode MethodAddress pour récupérer dynamiquement l'adresse d'une telle méthode en spécifiant le nom de la méthode sous la forme d'une chaîne.

Un moyen simple d'invoquer la méthode est de définir un type de données de fonction ou de procédure, comme :

type TProc = procedure of object;

Assignez le nom de l'objet et la méthode MethodAddress à une variable TMethod, comme :

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

Et passez cela dans un appel à une variable du type de procédure ou de fonction :

Proc := TProc(MethodVar);
Proc;

Voir aussi