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 : 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é');
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;
    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é');
J'ai comme l'impression d'être encore très loin d'avoir tout compris à la POO
Amicalement.
Alain