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

Composants VCL Delphi Discussion :

Récupérer les composants visuels de toute l'application


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2003
    Messages : 100
    Points : 50
    Points
    50
    Par défaut Récupérer les composants visuels de toute l'application
    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

  2. #2
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    ca ressemble à de la gestion de droits

    Pour trouver tous les composants d'une forme il faut agir avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Form.Components[ x ]
    et
    Form.Componentcount
    Pour la liste des fenêtres, à froid je sais plus, mais il y a des méthodes.
    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

  3. #3
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    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 ;

  4. #4
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2003
    Messages : 100
    Points : 50
    Points
    50
    Par défaut
    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

  5. #5
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ComposantX:=Application.components[1-1].components[2-1].components[3-1] ;
    A ma connaissance, il n'y a pas d'autre solution que de faire un parcours d'arbre.

    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 ...

Discussions similaires

  1. Changer les couleurs (thème) pour toute une application.
    Par duffmere dans le forum Windows Forms
    Réponses: 6
    Dernier message: 27/01/2012, 19h25
  2. Réponses: 2
    Dernier message: 06/06/2009, 17h32
  3. des composants standard pour toute l'application
    Par lucky31 dans le forum Composants
    Réponses: 12
    Dernier message: 29/04/2009, 19h18
  4. Hook pour récupérer les messages windows d'une autre application
    Par Tuizi dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 07/12/2007, 15h30
  5. [C#] - Récupérer les paramètres passés à une application
    Par linuxludo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/11/2005, 14h41

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