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 :

Shortcut ou raccourci dans fenetre MDI


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Mai 2003
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 28
    Par défaut Shortcut ou raccourci dans fenetre MDI
    Bonjour à tous,

    Je travaille avec C++Builder 6.0 sous Windows 2000.

    J'ai une application MDI créé qui intègre un menu avec des raccourci ainsi que des listes d'actions également associés à des raccourci (propriété shortcut si je me rapelle bien).

    Lorsque je suis dans mon application et que je n'ai pas ouvert de fenetre fille, tous les raccourcis fonctionnent bien. Par contre une fois que dans le code je crée une fenetre MDI fille dans la fenetre parent et que je suis par exemple dans un edit box de ma fenetre fille et que je tappe le raccourci du menu de ma fenetre MDI parente... rien ne se passe, l'action n'est pas declenché.

    Du coup je me demande s'il ne faut pas en qq sorte rediriger les shortcut dans le cas ou on fait du MDI depuis les fenetre filles vers la fenetre mere.

    Qu'en pensez vous ? Si qqun a une solution...

    Merci d'avance !

  2. #2
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Par défaut
    Bonjour,

    personnellement, j'essaierai de voir si la fenêtre principale reçoit le message du ShortCut, alors que l'EditBox de la fenêtre fille a le focus.

    Il suffit pour cela de mettre un point d'arrêt dans le gestionnaire d'évènement traitant le ShortCut dans la fenêtre mère.

    Si le message est bien reçu, alors j'enverrais via la messagerie, un message depuis la fenêtre mère vers toutes les fenêtres filles existantes, indiquant qu'un ShortCut a été activé.
    Ensuite je ferais en sorte que chaque fenêtre fille envoie ce message à tous leurs composants. De cette façon, l'EditBox finirait bien par réagir au ShortCut.

    Il faut pour cela étudier les fonctions SendMessage, PostMessage, Perform, et BroadCast.

    Bon courage

    @+

  3. #3
    Membre averti
    Inscrit en
    Mai 2003
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 28
    Par défaut
    Salut rtg57,

    Alors pour etre plus precis, non la fenetre parent ne recoit pas le raccourci quand il est tapé a partir de la fenetre fille et c'est bien la mon probleme.

    En fait ce raccourci est "bidon", il permet juste d'acceder à un bout de menu pour faire apparaitre une boite de dialogue. Cette action n'a pas ensuite à se répercuter à nouveau sur les fenetre filles. Il faut juste que la fenetre fille puisse, via le raccourci, "executer" l'action de cliquer sur un bouton de mon menu de fenetre mere. Exactement comme si j'avais directement cliqué dessus.

    Et pas moyen de voir si ceci est normal ou si c'est un "bug" qui empeche la redirection des shortcut vers la fenetre MDI parente.

  4. #4
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Par défaut
    Bonjour,

    si je comprend bien, la fenêtre fille capte l'évènement du ShortCut, et elle doit déclencher une action au niveau de la fenêtre mère.

    Si telle est le cas, j'ai peut être une idée à bidouiller

    On peut imaginer un TTimer qui tourne au niveau de la fenêtre mère.
    Dans la procédure de gestion de ce Timer, on pourrait scruter des variables booléennes gérées par les fenêtre filles.

    Lorsqu'une fenêtre fille voudrait indiquer à la fenêtre mère qu'un shortcut est activé, elle mettrait à true un drapeau...
    Lorsque la fonction OnTimer de la fenêtre mère serait traitée sur ordre du Timer, elle verrait que tel ou tel drapeau serait activé, et enclencherait des actions appropriées. On pourrait décréter un interval de 200ms pour le Timer, de façon à réagir assez rapidement mais sans trop bouffer de ressource CPU.

    C'est de la bidouille, mais je pense que ça devrait marcher .

    @+

  5. #5
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    bonjour
    la fenêtre parente doit également avoir son propre gestionnaire d'action
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

Discussions similaires

  1. Minimiser toutes les fenetres dans une MDI
    Par arnobase dans le forum Forms
    Réponses: 46
    Dernier message: 04/09/2007, 10h37
  2. Bug WxWidgets dans les fenetres MDI ?
    Par Muetdhiver dans le forum wxWidgets
    Réponses: 1
    Dernier message: 04/06/2007, 15h26
  3. [VB6] Ouverture d'une nouvelle fenêtre dans un MDI
    Par pepper dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 17/02/2003, 14h03
  4. [VB6] Position d'une MDIchild dans un MDI
    Par pepper dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 29/01/2003, 14h02
  5. Impression dans une MDI Application
    Par Andry dans le forum Composants VCL
    Réponses: 8
    Dernier message: 19/12/2002, 08h45

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