Serie di procedure all'interno di una classe di puntamento a metodo di classe
Domanda
Ho una classe (TExample) e voglio avere un array di puntatori che fanno riferimento a metodi TExample. Ad esempio, mi piacerebbe avere TExample.ThinkOne e fare aPointers [1]: = @ TExample.ThinkOne o qualcosa di simile. Come posso fare questo correttamente? Grazie.
Soluzione
Si può fare qualcosa di simile:
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;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow