Bonjour,

Je voudrais transmettre en paramètre d'une procédure une série d'objet de forme tels que des TPanel, TLabel, TButton etc... Comme je voudrais que le nombre et le type des paramètres soient variable, j'utilise un array of const en paramètre de ma procédure. dans ce cas c'est des TLabel. voila la procedure:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
 procedure proc_TVarRec(tab: Array of const)
 var
   I: Integer;
   lb  : TLabel;
   str : string;
 begin
   // 1ere partie
  for I := 0 to High(tab) do
  begin
    case VType of
      vtObject : showMessage(VObject.ClassName) ;
      vtClass  :  showMessage(VClass.ClassName) ;
    end;
  end;
 
  // 2eme partie
  lb := tab[0];
  ln.caption := 'Cap';
 end;
Alors cette procédure est une procédure de test pour l'inclure dans un programme plus important.

et je fais l'appel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
lb1,lb2 : TLabel
proc_TVarRec([lb1,lb2]);
Le problème c'est que dans la première partie de la procédure VType est détecté comme identificateur non déclaré. Est ce que c'est une unité qui me manque ou la version que j'utilise de Delphi qui prend pas en charge ce type (j'utilise delphi 2005) ?

Dans la deuxième partie j'ai une erreur TLabel et TVarRec incompatible. Est ce que vous auriez une solution pour faire un cast dans mon parmètre en TLabel et pouvoir l'utiliser comme un label classique (Affecter un text, le rendre visible ou non,...) ?