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 :

Composant TMenuitem et propriété Enabled


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 24
    Points : 15
    Points
    15
    Par défaut Composant TMenuitem et propriété Enabled
    Je (re)débute avec Delphi, j'ai qqs problèmes à la noix avec ces "Tmenuitems".

    Je crée sur la fiche un TMenuItem avec la propriété Enabled à False.

    Dynamiquement, je souhaite mettre cette propriété à "true".

    Pour ce faire, j'utilise la méthode suivante :

    classes1.Enabled:=true;

    Mais, rien ne se passe, mon menu reste toujours grisé (même si ensuite je fais un Repaint).

    Quelqu'un a une idée?

    Merci beaucoup!

    Cyprien

  2. #2
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 306
    Points
    2 306
    Par défaut
    bonjour,

    c'est quoi classe1, c'est bien un TMenuitem (la ligne du menu) ?
    Tu n'as pas associées d'action à ton TMenuitem ? Si oui, cette action a-t-elle un code associé ?
    Sinon, assure toi que tu passe bien sur la ligne qui doit le rendre enabled.

    @++
    Dany

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    classes1 est bien un TMenuItem, auquel j'ai mis la propriété "Enabled" à false lors de la conception dans l'editeur.

    Je ne souhaite rendre utilisable ce menu qu'après l'ouverture d'un fichier, ouverture commandée par un autre TMenuItem.

    Donc, après l'ouverture du dit fichier, je veux rendre l'utilisation du menu "classes" possible. Pour cela, je mets alors : "classes1.Enabled:=true"

    Mais, il ne se passe rien après l'ouverture du fichier, j'ai l'impression que je ne peux pas modifier dynamiquement l'état "enabled" de "classes1".

    J'ai essayé de faire ça avec la propriété "visible" mais ça ne fonctionne pas davantage.

    Il n'y a pas d'action associé à ce TMenuItem...

    Merci en tous cas

    Cyprien

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    LE fait que ce MainMenu soit dans une toolbar change-t-il quelquechose?

  5. #5
    Membre actif Avatar de [Silk]
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2005
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2005
    Messages : 198
    Points : 201
    Points
    201
    Par défaut
    Salut,
    le fait que le mainmenu soit dans une TToolBar a priori ne change rien,
    par contre pour ton code au lieu d'appeler directement par son nom ton MenuItem essaye de l'appeler par son index :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MainMenu1.Items.Items[1].Enabled := true;
    j'ai testé comme ça sa marche impec ou alors par sa caption :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MainMenu1.Items.Find('classes').Enabled := true;
    à toi de choisir celui que tu préfère

    @+
    [Silk]

  6. #6
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 306
    Points
    2 306
    Par défaut
    non, même par son nom ça marche, j'ai essayé. Es-tu sûr que ton code passe bien sur ta ligne, qu'il n'y a pas une exception levée avant par exemple. Peut-être aussi que tu le desactive par le code à un autre endroit (formshow par exemple) qui le desactiverait avant que tu ne le voye actif.

    @++
    Dany

  7. #7
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    Bonjour
    Je suis de l'avis de skywaukers...
    Et je trouve risqué de désigner un TMenuItem par son index ou sa caption.
    Il suffit d'insérer un nouveau TMenuItem ou de changer la caption, et plus rien ne fonctionnera !!!
    De toute façon, si le code le désignant par sa propriété name ne fait rien, c'est qu'il y a autre chose... et aucune autre méthode ne marchera tant qu'on aura pas localisé le pb
    Je pense aussi que la 1ère des choses à faire est de vérifier que le prog se branche bien sur la ligne en question

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    J'ai créé un bouton ou le seul code était le suivant : "classes1.enabled:=true" et même résultat.

    J'ai abandonné le menu lié à une toolbar et j'ai essayé avec un "vrai" menu, ca a marché cette fois. C'est pas tout à fait ce que je voulais mais ça a l'air de marcher.

    Merci néanmoins pour vos conseils avisés.

    Cyprien

Discussions similaires

  1. TWebBrowser - propriété Enabled
    Par asuka_l2 dans le forum Delphi
    Réponses: 2
    Dernier message: 16/05/2006, 14h40
  2. Composant filelistBox et propriété Defaultdir
    Par zidenne dans le forum Composants VCL
    Réponses: 1
    Dernier message: 25/10/2005, 13h42
  3. [Composant] Masquer des propriétés
    Par Raylemon dans le forum Composants VCL
    Réponses: 17
    Dernier message: 28/07/2005, 15h30
  4. Réponses: 12
    Dernier message: 06/04/2005, 11h54
  5. [Composant] publier une propriété avec un type perso
    Par jpc34 dans le forum C++Builder
    Réponses: 6
    Dernier message: 12/10/2004, 08h39

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