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 :

Création de composant VCL - Masquer les controles enfants


Sujet :

C++Builder

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Création de composant VCL - Masquer les controles enfants
    Bien le bonjour à tous !

    Je suis en train de me faire un composant type panel rétractable.

    Tout l'aspect graphique du composant est géré. Ne me reste plus qu'un détail à régler : faire disparaître les contrôles enfants du panel lorsque celui-ci est replié.

    J'ai pensé à la solution simple de parcourir tous les enfants et de passer leur propriété Visible à false lorsque je rétracte le panel, et à true lorsque je le déploie.

    Mais cela pose deux problèmes. Tout d'abord, si l'application masque d'elle même certains composants enfants du panel pour diverses raisons (empêcher l'accès à une propriété, ...), lorsque le Panel sera déployé, ces paramétrages seront perdus et tous les composants seront visibles.

    Autre problème, si les composants enfants sont, par exemple, tous en align top, lors du redéploiement du panel leur position les uns par rapport aux autres pourrait changer.

    Aussi, savez-vous s'il existe une autre solution pour ne pas afficher les contrôles contenus dans un panel ? Ou pour empêcher qu'ils ne soient redessinés ?

    Merci d'avance,

    André

  2. #2
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Je ne suis pas sûr d'avoir compris, mais ca devrait fonctionner en masquant (Visible=false) ton Panel (ou a défaut, un Panel contenu dans ton Panel qui contiendrait tous tes composants). Ainsi tu nous toucherais pas à la propriété de chaque composant, mais uniquement du Panel parent..

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour sat83 et merci pour ta réponse.

    En effet, la solution que tu exprimes entre parenthèses correspond à ce que je souhaite faire.

    Cependant, cela nécessite de faire intervenir la mise en place de deux composants : le panel rétractable et un autre panel qu'il faudra placer dans le panel rétractable.

    Hors je souhaiterais qu'au niveau de l'utilisation, il n'y ai qu'un composant à placer sur la form.

    J'ai essayé de créer dynamiquement un TPanel dans le panel rétractable, mais comme je m'y attendais, cela pose des problèmes pour les composants enfants qui ne retrouvent plus leur parent au moment de l'exécution.

    Si vous voyez d'autres possibilités, je suis preneur.

    Merci encore à sat83,

    André

  4. #4
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    Citation Envoyé par andre vesal Voir le message
    Bonjour sat83 et merci pour ta réponse.

    En effet, la solution que tu exprimes entre parenthèses correspond à ce que je souhaite faire.

    Cependant, cela nécessite de faire intervenir la mise en place de deux composants : le panel rétractable et un autre panel qu'il faudra placer dans le panel rétractable.

    Hors je souhaiterais qu'au niveau de l'utilisation, il n'y ai qu'un composant à placer sur la form.

    J'ai essayé de créer dynamiquement un TPanel dans le panel rétractable, mais comme je m'y attendais, cela pose des problèmes pour les composants enfants qui ne retrouvent plus leur parent au moment de l'exécution.

    Si vous voyez d'autres possibilités, je suis preneur.

    Merci encore à sat83,

    André
    Hé bien si tu créé ton propre composant qui inclue les deux panels (comme l'a décrit sat83), lors de l'utilisation tu n'auras qu' à placer le composant créé...

    Tu auras donc tes deux panels en un seul composant, je ne comprends pas trop le problème...

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/12/2013, 12h17
  2. [Control] quelle méthode dessine les controls enfants
    Par soad dans le forum Windows Forms
    Réponses: 7
    Dernier message: 10/01/2009, 00h00
  3. [ToolTip] Comment le masquer sur les contrôles enfants ?
    Par tomlev dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 16/09/2008, 14h55
  4. Réponses: 3
    Dernier message: 07/07/2007, 10h35
  5. Création de composants - question sur les paquets
    Par josse95 dans le forum C++Builder
    Réponses: 4
    Dernier message: 01/04/2007, 13h03

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