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

EDI Delphi Discussion :

empêcher l'accès à la barre de menu dans une app MDI


Sujet :

EDI Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 37
    Points : 31
    Points
    31
    Par défaut empêcher l'accès à la barre de menu dans une app MDI
    salut,

    j'ai une application MDI sous Delphi 2009, ma question et comment je peux empêcher l'accès au barre de menu lorsqu'une fenêtre MDIChild est ouverte, et autoriser l'accès lorsqu'aucune fenêtre est ouverte.

    Merci.

  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 303
    Points
    2 303
    Par défaut
    Bonjour,

    en positionnant les actions derrières les menus à disabled au moment ou tu ouvre un mdichild. Tu incrémente également un compteur. Lorsque tu ferme un mdichild, tu décrémente le compteur et tu remet à enabled lorsqu'il n'y a plus de mdichild d'ouverte.
    ainsi MonAction.Enabled := ( MonCompteur = 0) devrait gérer correctement l'état de l'action en fonction du fait qu'il y ait ou pas de mdichild d'ouvertes.

    @++
    Dany

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    ce n'est qu'une suggestion mais ?
    en ne fusionnant pas les menus
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut


    ou tout simplement en mettant a False la propriété Enabled des TMenuItem principaux (Fichier, Edition, Fenêtre, ...) lorsque tu ouvres une fiche MDIChild (TForm.MDIChildCount > 0).

    @skywaukers
    as tu déjà réussi à mettre une action sur un menu principal (je veux dire une action sur Fichier ou Edition par exemple). moi je n'y arrive pas.
    sinon pour faire comme tu dis on peut utiliser les action pour chaque élément du menu (Fichier->ouvrir, Fichier->Enregistrer, ...) et dans l'évènement OnUpdate de chaque action on active l'action uniquement lorsque MDIChildCount = 0.

    @Maître Sergio
    oui si son souci c'est de ne pas fusionner les menus de la fiche enfant avec ceux de la fiche principale.

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Evarisnea
    oui si son souci c'est de ne pas fusionner les menus de la fiche enfant avec ceux de la fiche principale.
    c'est un moyen simple et efficace
    lorsque j'ai émis cette suggestion , je ne l'avais pas tester , ce qui viens d'être fait en D2010 pas d'Automerge de menu sur la fiche enfant et le tour est joué puisque on ne voit plus le menu de la fiche principale , on ne peut donc pas y accéder

    Avec l'autoMerge on peut encore joué sur le groupIndex pour n'avoir que certaines parties de chacun des deux menus

    Maintenant , s'il s'agit de grisé le menu de la Form Principale c'est autre chose , et effectivement il faut se coltiner les propriété Enabled
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    c'est un moyen simple et efficace
    lorsque j'ai émis cette suggestion , je ne l'avais pas tester , ce qui viens d'être fait en D2010 pas d'Automerge de menu sur la fiche enfant et le tour est joué puisque on ne voit plus le menu de la fiche principale , on ne peut donc pas y accéder
    bien vu maître, je viens de tester et j'avoue que j'ignorais cette configuration

    Citation Envoyé par SergioMaster Voir le message
    Maintenant , s'il s'agit de grisé le menu de la Form Principale c'est autre chose , et effectivement il faut se coltiner les propriété Enabled
    c'est donc à bilalini de choisir ce qui lui convient le mieux

Discussions similaires

  1. Créer deux barres de menu dans une application
    Par f6dqm1 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 05/03/2015, 14h12
  2. [debutant] Barre de menu dans un formulaire
    Par benjiprog dans le forum IHM
    Réponses: 2
    Dernier message: 16/07/2007, 12h02
  3. pas de barre de menu dans IDE Delphi5
    Par zonda dans le forum Delphi
    Réponses: 2
    Dernier message: 11/11/2006, 17h22
  4. Un menu dans une barre d'outils Swing : possible ?
    Par nicolas54 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 28/03/2006, 07h54
  5. Probleme d'un datamodule commun dans une app MDI
    Par Riko dans le forum Bases de données
    Réponses: 1
    Dernier message: 26/10/2005, 10h13

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