Bonsoir

Je dispose sur une feuille de quelques dizaines de checkbox dont la validation ou la "devalidation" génére ou efface une expression dans un RichEdit.
Ce qui me donne pour chaque CheckBox :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  if CheckBox1.Checked=true then  AjouteLigneNoire('mon expression1', OMC_REdit)
     else EffacerLigne('mon expression1',OMC_REdit);
end;
(AjouteLigneNoire et EffacerLigne etant 2 procedures annexes)

Cela me fait quelques centaines de lignes de codes pour pas grand chose me semble t il. Avec un peu de reflexion (ca peut servir ) je pense aux tableaux , je trouve cela plus élégant, tout content je passe donc à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Expression : array [1..95] of String;
OMC_Check : : array [1..95] of TCheckbox;
Dans la procedure OnCreate j'affecte mes valeurs dans les tableaux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
Expression[1] := 'mon expression1';
....
Expression[95] := 'mon expression95';
OMC_Check[1] := CheckBox1;
....
OMC_check[95] := CheckBox95;
je commence donc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Procedure Tform1.OMC_Click(i : integer ? )
begin
  if OMC_Check[i].Checked=true then  AjouteLigneNoire(Expression[i], OMC_REdit)
     else EffacerLigne(Expression[i],OMC_REdit);
end;
et la j'ai un grand moment de solitude comment passer l'indice a ma procedure si j'affecte cette procedure a l'evenement Onclick de chaque CheckBox.
le seul moyen auquel je pense serai de faire pour chaque checkbox :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
   OMC_Click(1);
end;
soit a nouveau 95 procedures donc mon idée de tableau partirai a la pubelle.

Quelqu'un aurait une idée, une piste pour m'aider a poursuivre dans cette voie ?
Par avance merci
Cordialement