2010-09-25 26 views
1

J'ai une classe (TExample) et je veux avoir un tableau de pointeurs qui pointent vers des méthodes TExample. Par exemple, j'aimerais avoir TExample.ThinkOne et faire aPointers [1]: = @ TExample.ThinkOne ou quelque chose de similaire. Comment puis-je le faire correctement? Merci.Tableau de procédures dans une classe pointant vers la méthode de classe

+0

Vous n'avez pas besoin de préfixer vos questions avec '[DELPHI]'. C'est ce que les tags sont pour. – splash

Répondre

2

Vous pouvez faire quelque chose comme ceci:

type 
    TProcType = procedure(const AParm: Integer) of object; // Method type 
    TProcArray = array of TProcType; // Dynamic array 
    TExample = class 
    public 
    procedure A(const AParm: Integer); // Method signature matches TProcType 
    procedure B(const AParm: Integer); 
    end; 

var 
    pa : TProcArray; 

procedure Init(const AExample: TExample); 
begin 
    SetLength(pa, 2); 
    pa[0] := AExample.A; 
    pa[1] := AExample.B; 
end;