System.TObject.MethodAddress
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;