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 :

TMenuItem->Visible pas toujours opérant


Sujet :

C++Builder

  1. #1
    Invité
    Invité(e)
    Par défaut TMenuItem->Visible pas toujours opérant
    Bonjour,

    J'ai sur ma forme principale un menu descendant de TMainMenu, qui contient des TMenuItem. Le menu a deux niveaux :
    - un niveau 0 contenant les catégories (Fichier, Edition, etc...)
    - un niveau 1 contenant les commandes proprement dites (Nouveau, Enregistrer...)

    Au démarrage, sur la base est droits contenus dans un fichier .ini je cherche à cacher certains éléments du menu... Pour le niveau 1, pas de problème, je fais MonItem->Visible=false, et l'élément est caché.

    Mais pour le niveau 0, pas moyen :
    MonItem->Visible=false;
    ou
    MonMenu->Items->Remove(MonItem);

    rien n'y fait, le menu reste là...

    Quelqu'un sait il ce qui se passe, et comment changer cela?

    Merci d'avance
    Francois

  2. #2
    Membre Expert
    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 : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Tu peux utiliser la propriété Enabled:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonItem->Enabled = false;
    [EDIT]
    Je viens de faire l'essai, et je n'ai pas de soucis avec la propriété Visible ni avec la méthode Remove(MonItem), ca fonctionne parfaitement chez moi.

    Tu est sur que le problème ne vient pas d'ailleurs?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Effectivement, placé en enfant d'une TForm, ca marche, si maintenant je mets ce TMainMenu dans un composant (TToolBar ou un descendant), ca ne marche plus...

    C'est assez mystérieux, je vais faire autrement...

    Francois

  4. #4
    Membre confirmé
    Profil pro
    Ingenieur developpement
    Inscrit en
    Septembre 2002
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingenieur developpement

    Informations forums :
    Inscription : Septembre 2002
    Messages : 175
    Par défaut
    J'ai le même problème pour cacher les menuItems de niveau 0 lorsque le menu est affecté à une TToolbar. Quelqu'un aurait réussi à les faire disparaitre en exécution ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par gudul Voir le message
    J'ai le même problème pour cacher les menuItems de niveau 0 lorsque le menu est affecté à une TToolbar. Quelqu'un aurait réussi à les faire disparaitre en exécution ?
    Apparemment, il faut réinitialiser la propriété Menu de TToolBar (ou si tu utilises un descendant du genre TAdvToolBar, appeler une fonction UpdateMenu()).

    Donc il faut réaffecter le menu après en avoir modifié un des éléments de niveau 0, quelque chose comme ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaToolBar->Menu=MonMenu;
    peut être avec
    MaToolBar->Menu=NULL;
    avant

    Francois

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/11/2008, 11h35
  2. [CSS] a:active ne fonctionne pas toujours ?
    Par KpTn dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 10/05/2006, 17h25
  3. Réponses: 9
    Dernier message: 04/10/2005, 19h39
  4. db enregistre pas toujour
    Par cre3000 dans le forum Bases de données
    Réponses: 1
    Dernier message: 23/05/2005, 12h16
  5. [VB6] [Validate et CausesValidation] Ca marche pas toujours !!!
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 16/12/2003, 22h09

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