System.Rtti.Invoke
Delphi
function Invoke(CodeAddress: Pointer; const Args: TArray<TValue>; CallingConvention: TCallConv; AResultType: PTypeInfo; IsStatic: Boolean; IsConstructor: Boolean): TValue;
C++
extern DELPHI_PACKAGE TValue __fastcall Invoke(void * CodeAddress, const System::DynamicArray<TValue> Args, System::Typinfo::TCallConv CallingConvention, System::Typinfo::PTypeInfo AResultType, bool IsStatic = false, bool IsConstructor = false);
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
function | public | System.Rtti.pas System.Rtti.hpp |
System.Rtti | System.Rtti |
Description
Invoque dynamiquement une méthode.
Utilisez Invoke pour invoquer une méthode à l'exécution. Invoke est utile quand la méthode réelle n'est pas connue à la compilation, mais est plutôt recherchée à l'exécution.
Le tableau suivant liste les paramètres de la routine Invoke.
Paramètre | Description |
---|---|
CodeAddress |
L'adresse de la méthode à invoquer. |
Args |
Un tableau d'enregistrements TValue, où chacun stocke un paramètre passé à la méthode. |
CallingConvention |
La convention d'appel utilisée pour invoquer la méthode. |
AResultType |
Les informations du type de résultat de la méthode. |
Invoke renvoie un enregistrement TValue qui contient le résultat de la méthode invoquée.
Selon le type de la méthode invoquée, le tableau Args doit suivre un ensemble de règles :
- Pour les méthodes d'instance, le premier élément du tableau Args doit être le pointeur sur l'instance.
- Pour les méthodes d'interface, le premier élément du tableau Args doit être la référence de l'interface.
- Pour les méthodes de classe, le premier élément du tableau Args doit être une référence de classe.
- Les méthodes statiques et les routines globales ne nécessitent pas un traitement spécial.
Voir aussi