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

C++Builder Discussion :

Astuces pour tester propiétés d'une classe


Sujet :

C++Builder

  1. #1
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut Astuces pour tester propiétés d'une classe
    Hello!

    Je dois vérifier pour 25 checkboxs si elles sont cochées ou pas.
    Pour l'instant je fais cela avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (checkboxN->checked)
        { /*Traitement1*/}
    else
        {/*Traitement2*/}
    J'aimerai savoir si il n'y a pas un moyen plus rapide et plus optimisé que de faire ce block de condition 25fois?

    merci de votre aide

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    L'idée première est de créer ses cases à cocher dynamiquement via un TComponent qui en serait propriétaire.
    Il suffirait donc de traiter chaque case à cocher via la propriété Components du propriétaire.
    Je pense qu'il est déjà trop tard pour cette solution...

    Autre solution, mettre en liste ces cases à cocher, dans le constructeur de la form...
    C'est du boulot !

    Enfin, il reste la possibilité d'utiliser la méthode FindComponent.
    Voir l'aide à propos de TComponent::FindComponent !

    Voir éventuellement si un TCheckListBox ne pourrait pas faire l'affaire ?

    A plus !

  3. #3
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Sinon va voir le post sur comment vérifier les composants d'une Form:
    http://www.developpez.net/forums/sho...d.php?t=253781

  4. #4
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut
    Bonjour

    Citation Envoyé par Crayon
    Sinon va voir le post sur comment vérifier les composants d'une Form:
    http://www.developpez.net/forums/sho...d.php?t=253781
    Merci pour ton aide Crayon, j'ai commencé par ta solution car c'était presque clef main ( oui un peu faignant le matin )

    Par contre j'ai quand meme un problème. Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    for(int i = 0; i < this->ComponentCount; i++)
        {
                    if(this->Components[i]->ClassNameIs("TCheckBox"))
                    {
                         if ((((TCheckBox*)this)->Components[i])->Checked)
                                Courbe(cpt,C,Coul,index-1);
                            cpt++;
                    }
     
        }
    J'ai l'erreur Checked n'est pas un membre de TComponent. D'après l'aide de BCB4, TComponent prend en compte tout les controles. Donc je ne vois pas trop ou est mon erreur.

    Si vous avez une idée?

  5. #5
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut
    Pourquoi faire simple quand on peut faire compliquer

    Bon j'ai résolu mon problème comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    TCheckBox *Box;
    int index=0,cpt=0;
    for(int i = 0; i < this->ComponentCount; i++)
    {
                    if(this->Components[i]->ClassNameIs("TCheckBox"))
                    {
                            Box =(TCheckBox *)(this)->Components[i];
                            if (Box->Checked)
                                Courbe(cpt,C,Coul,index-1);
                            cpt++;
                    }
     
        }
    Merci pour votre aide et Joyeuses Fêtes de Fin d'Année

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/12/2009, 19h25
  2. Besoin d'aide pour l'utilisation d'une classe
    Par xrorox dans le forum VBScript
    Réponses: 0
    Dernier message: 13/08/2009, 09h12
  3. Réponses: 2
    Dernier message: 09/10/2008, 21h35
  4. Réponses: 4
    Dernier message: 16/01/2007, 15h27
  5. Conseils pour l'écriture d'une Classe
    Par delphi5user dans le forum Delphi
    Réponses: 10
    Dernier message: 12/07/2006, 22h51

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