Bonjour à tous,

Bah, je sais vous allez me dire pourquoi faire compliqué quand on peut faire simple! Ben le RadioButton ne me plait pas, je trouve plus joli les petites cases à cocher. Mais voilà, il faut qu'elle se comportent comme des boutons radio, donc un seul choix possible. Je pensais y arriver en faisant appel à l'identification centralisée des composant sur la fenêtre, mais ça coince.

Nom : Img1.jpg
Affichages : 122
Taille : 27,7 Ko

Tous les évènements des cases à cocher sont centralisées sur le Séparateur Tab (c'est une petite appli de conversion de fichier CSV)

L'algorithme semble fonctionner:
1. Je parcours tous les composants de la fenêtre
2. Lorsque j'identifie une CheckBox, je regarde son nom pour voir s'il correspond à celui de l'évènement
3. Si c'est le Bon Nom -> CS
4. mini boucle d'action pour checker la case sélectionnée et Décherckher les autres

Problème:
Le code ci-dessous est bon avec l'affichage des composants à Décocher, mais si à la place je mets l'action TCheckBox(FindComponent(NomCheckSepar[i])).Checked := False; ça plante (En rouge dans le code) => Voir ci-Dessous


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
21
procedure TForm1.CkBTabClick(Sender: TObject);
    Const NomCheckSepar : array[0..4] of String = ('CkBTab','ChBSapce','ChBPtComma','ChBComma','ChBOther');
    Var C, i  : word;
           CS : String;// nom de la checkBox choisie
begin
  For C := 0 To ComponentCount -1 do
  begin
    if Components[C] is TCheckBox then
    begin
       if Components[C].Name = TCheckBox(Sender).Name then
       begin
          CS := TCheckBox(Sender).Name;
          For i := 0 to 4 do
          if CS = NomCheckSepar[i] then TCheckBox(FindComponent(CS)).Checked := true
                                                 else  Showmessage(NomCheckSepar[i]); //TCheckBox(FindComponent(NomCheckSepar[i])).Checked := False;
          break;
      end;
    end;
  end;
end;
Nom : Img2.jpg
Affichages : 122
Taille : 47,6 Ko

ça vient peut être du nom du composant, je n'ai pas retrouvé le type des noms de composant, j'ai mis du string...

Merci, pour ceux qui sont un peu tordu comme moi, Lol