System.Rtti.Invoke

De RAD Studio API Documentation
Aller à : navigation, rechercher

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