IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Balayage de CheckBox


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 181
    Par défaut Balayage de CheckBox
    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

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Pour ma parrt je ferais de la manière suivante :

    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
     
    var
      i : integer;
      bUnItemCheck : Boolean;
    begin
      bUnItemCheck := False;
      for i := 0 to GroupBox1.Controlcount -1 do
      begin
        if GroupBox1.Controls[i] is TCheckBox then
          if TCheckBox(GroupBox1.Controls[i]).Checked then
          begin
            bUnItemCheck := True;
            Break; // quitte la boucle car on a trouvé une des checkbox de cocher
          end;
      end;
       if bUnItemCheck =True then
        ShowMessage('Coché')
      else
        ShowMessage('Pas coché');
    end;
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 181
    Par défaut
    Bravo Malatar !
    C'est magique, ça marche sans coup férir !
    Merci pour la rapidité et la qualité de ta réponse.
    Bien cordialement.

    Alain

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JSP]checkbox
    Par orisis dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 16/04/2013, 13h53
  2. [VB.NET] Insérer une colonne de CheckBox dans un DataGrid
    Par Manue.35 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/05/2003, 11h44
  3. Checkbox
    Par rgarnier dans le forum XMLRAD
    Réponses: 11
    Dernier message: 06/03/2003, 10h48
  4. Couleur d'un CheckBox
    Par benj63 dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/07/2002, 14h48
  5. CheckBox en Read Only
    Par MrJéjé dans le forum C++Builder
    Réponses: 7
    Dernier message: 23/06/2002, 15h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo