Salut à tous,
je voudrais pouvoir compter tous les TPanel qu'il y a dans un Form. Comment puis-je procéder?
Merci d'avance.
Salut à tous,
je voudrais pouvoir compter tous les TPanel qu'il y a dans un Form. Comment puis-je procéder?
Merci d'avance.
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");
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 !
Il me dit Component is not a member of Tform1Envoyé par Tenguryu
c'est normal?
c'est Components la proriété
pour l'ensemble de la form..un peu de récursivité devrait faire l'affaire
Je suis rendu à :
et j'ai une erreur pour la ligne ou il y a le if:
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++; } }
Member function must be called or its adress taken???
Salut,
Essaies :
@ +
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 this->Components[i]->ClassNameIs("TPanel");![]()
Je n'ai pas testé, mais ça devrait fonctionner comme ça aussi.
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)); } }
Yarp
www.senosoft.com
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:
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
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++; } }Mais j'ai pas réussi à trouver exactement comment faire ?
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;
Partager