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 :

Compter le nombre de TPanel dans un TForm


Sujet :

C++Builder

  1. #1
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut Compter le nombre de TPanel dans un TForm
    Salut à tous,

    je voudrais pouvoir compter tous les TPanel qu'il y a dans un Form. Comment puis-je procéder?

    Merci d'avance .

  2. #2
    Membre éprouvé

    Profil pro
    Cadre
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Par défaut
    De tete..donc à vérifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int cpt = 0;
    for(int i = 0; i < this->ComponentCount; i++)
    {
         if(this->Component[i]->ClassName == "TPanel";
             cpt++;
    }
     
    ShowMessage("Il y a " + IntToStr(cpt)+" TPanel sur la Form");

  3. #3
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    Salut !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    int Nbr_Panel=0;
     
    for ( int x=0 ; x<MaForm->ComponentCount ; x++)
             if ((AnsiString)MaForm->Components[x]->ClassName() == "TPanel" )
                      Nbr_Panel++;
     
     
    ShowMessage(Nbr_Panel);

    Je concidère que tout les panels ont comme parent la MaForm elle même, sinon, débrouille pour parcourir tout les Components de tout les conteneur de panel


    Bonne chance !

  4. #4
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut
    Citation Envoyé par Tenguryu
    De tete..donc à vérifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int cpt = 0;
    for(int i = 0; i < this->ComponentCount; i++)
    {
         if(this->Component[i]->ClassName == "TPanel";
             cpt++;
    }
     
    ShowMessage("Il y a " + IntToStr(cpt)+" TPanel sur la Form");
    Il me dit Component is not a member of Tform1

    c'est normal?

  5. #5
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    c'est Components la proriété

    pour l'ensemble de la form..un peu de récursivité devrait faire l'affaire

  6. #6
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut
    Je suis rendu à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int cpt = 0;
    for(int i = 0; i < this->ComponentCount; i++)
    {
         if(this->Components[i]->ClassName == "TPanel")
         {
             cpt++;
         }
    }
    et j'ai une erreur pour la ligne ou il y a le if:

    Member function must be called or its adress taken???

  7. #7
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Salut,
    Essaies :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this->Components[i]->ClassNameIs("TPanel");
    @ +

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void __fastcall Tform1::EnumeratePanels(TWinControl* Control)
    {
      TControl *hControl;
     
      for (int nCnt=0; nCnt<Control->ControlCount; nCnt++) {
        hControl = Control->Controls[nCnt]; 
        if (dynamic_cast<TPanel *>(hControl)) {
          dynamic_cast<TPanel *>(hControl)->Caption = "One more";
        }
        EnumeratePanels(dynamic_cast<TWinControl *>(hControl));
      }
    }
    Je n'ai pas testé, mais ça devrait fonctionner comme ça aussi.

    Yarp
    www.senosoft.com

  9. #9
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut
    Merci en effet ca marche ^^.

    Juste un dernier truc par rapport à ca.

    Je compte donc tout mes Tpannel de mon TForm de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     int cpt = 0;
     for(int i = 0; i < this->ComponentCount; i++)
     {
                    if(this->Components[i]->ClassNameIs("TPanel"))
                    {
                            Panel=this->Components[i]->Name;
                            cpt++;
                    }
     
            }
    Je récuper le nom de chaque Panel avec this->Components[i]->Name. Mais maintenant je voudrais rendre invisible chacun de ces panels (avec Visible=false Mais j'ai pas réussi à trouver exactement comment faire ?

  10. #10
    Membre éprouvé

    Profil pro
    Cadre
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Par défaut
    Il faut transtyper ton pointeur vers le composant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ((TPanel *)this->Components[i])->Visible = false;

  11. #11
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut
    Merci à tous

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

Discussions similaires

  1. compter le nombre de fichiers dans un répertoire !
    Par lehic dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 20/11/2005, 17h59
  2. Compter le nombre d'élément dans un tableau
    Par cryptorchild dans le forum Langage
    Réponses: 6
    Dernier message: 08/07/2005, 13h01
  3. Réponses: 6
    Dernier message: 11/02/2005, 06h41
  4. [SQL][ACCESS]Compter le nombres d'enregistrement dans deux..
    Par pc152 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/06/2004, 12h30
  5. Réponses: 2
    Dernier message: 02/03/2004, 19h38

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