Bonjour,
Je voudrais savoir comment recuperer les noms de tous les objets(boutons,options de menus) de tous les form de mon application et agir sur leur visibilité deja au demarrage de l'application.
Merci
Bonjour,
Je voudrais savoir comment recuperer les noms de tous les objets(boutons,options de menus) de tous les form de mon application et agir sur leur visibilité deja au demarrage de l'application.
Merci
ca ressemble à de la gestion de droits
Pour trouver tous les composants d'une forme il faut agir avec
Pour la liste des fenêtres, à froid je sais plus, mais il y a des méthodes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Form.Components[ x ] et Form.Componentcount
Et puis ca dépend si tu les alloues dynamiquement (mieux), ou si tu joues seulement avec la visibilité.
Si c'est dynamique, il te faut répertorier la liste des fen. dans une liste qq part.
bon courage
Bonjour,
Pour récupérer les objets, il faut partir de la variable "Application" et en déduire tout l'arbre de composants qui en dépend.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 // pour obtenir les composants fils de ComposantPere et leur nom var composantFils : Tcomponent ; for i:=0 to ComposantPere.ComponentsCount-1 do begin composantFils:=ComposantPere.components[i]; showmessage(composantFils.Name); //Pour rendre le composant visible/invisible if ... then composantFils.visible:=true else composantFils.visible:=false; end ;
Bjr,
Effectivement c'est la gestion des droits ms j'ai comme l'impression que ma question n'a pas ete claire vu vos reponses car en fait je veux parcourir tous les objets de mon application hormis les forms et agir sur leur visibilité.
Je crois que Graffito approchait la solution ms ds son code je ne vois rien qui fait reference a Application et j'ai comme l'impression qu'il prend les forms un à un et parcourt les composants hors ds mon cas je veux ignorer les forms et s'attaquer aux objets de toute l'application(boutons et options de menus juste)
Merci
Bonjour,
Supposons une appli avec 4 formes avec chacune 5 panels contenant 6 boutons, pour accéder au bouton 3 du panel 2 de la forme 1 :
A ma connaissance, il n'y a pas d'autre solution que de faire un parcours d'arbre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ComposantX:=Application.components[1-1].components[2-1].components[3-1] ;
Pour eliminer les form, il faut simplement tester le type des composants fils de application
Code : Sélectionner tout - Visualiser dans une fenêtre à part if Application.components[i-1] is Tform ...
Partager