Utillisation groupe de contrôles TCheckBox
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:
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:
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:
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:
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:
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