Bonjour à tous.
J'ai créé dans un GroupBox un certain nombre de CheckBox de façon dynamique. Ces CheckBox sont nommés dynamiquement CheckBox1, CheckBox2, etc...
Je souhaite à présent les balayer pour savoir si l'un d'entre eux est coché.
Voici les deux codes que j'ai essayé et qui me renvoient un message de violation d'adresses (dans ces deux codes, la variable privée LastCreatedIndex contient l'index du dernier CheckBox créé dynamiquement).
Code n°1 :
Code n°2 :
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 var UnItemAuMoinsChecked:boolean; i:integer; NomCheckBox:TCheckBox; begin UnItemAuMoinsChecked:=False; for i:=1 to LastCreatedIndex do begin NomCheckBox.Name := Format('CheckBox%d', [LastCreatedIndex]); if NomCheckBox.Checked=True then UnItemAuMoinsChecked:=True; end; if UnItemAuMoinsChecked=True then ShowMessage('Coché') else ShowMessage('Pas coché');
J'ai comme l'impression d'être encore très loin d'avoir tout compris à la POO
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 var UnItemAuMoinsChecked:boolean; i:integer; AControl: TControl; begin UnItemAuMoinsChecked:=False; for i:=1 to Pr_LastCreatedIndex do begin AControl.Name := Format('CheckBox%d', [Pr_LastCreatedIndex]); if TCheckBox(AControl).Checked=True then UnItemAuMoinsChecked:=True; end; if UnItemAuMoinsChecked=True then ShowMessage('Coché') else ShowMessage('Pas coché');![]()
Amicalement.
Alain
Partager