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

Autres IDE Pascal Discussion :

[OWL] Actions clavier dans un dialogue non modal [Virtual Pascal]


Sujet :

Autres IDE Pascal

  1. #1
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 415
    Points
    59 415
    Billets dans le blog
    2
    Par défaut [OWL] Actions clavier dans un dialogue non modal
    Bonjour !

    Je suis en train de m'arracher les cheveux pour essayer de gérer les actions du clavier dans un dialogue non modal descendant de tDialog. Ce que j'appelle les actions du clavier, c'est Enter pour faire OK, Escape pour annuler et la tabulation pour passer d'un contrôle à l'autre.

    J'exécute pourtant bien la méthode EnableKBHandler dans le constructeur Init de tDialog.

    Je me suis déjà tiré d'affaire dans d'autres circonstances, c'est-à-dire dans un dialogue de statut, en créant une méthode qui parcourt la file d'attente des messages. Cette méthode était exécutée par la fenêtre parent du dialogue à chaque action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Procedure tDialogueStatut.FileMessages;
    Var Msg : tMsg;
    Begin
      while PeekMessage(Msg,0,0,0,pm_Remove) do
        if not IsDialogMessage(hWindow,Msg)
           then
             begin
               TranslateMessage(Msg);
               DispatchMessage(Msg);
             end;
    End;
    Mais dans le cas présent, la fenêtre parent du dialogue n'effectue aucune action et donc je ne peux pas reprendre la même technique.

    Quelqu'un aurait-il une petite idée ?

    P.S. La question étant spécifique à la bibliothèque OWL du Pascal Objet, je ne l'ai pas posée sur le forum Développement Windows.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Une idée farfelue : tu peux peut-être utiliser un timer pour exécuter la procédure de recherche de messages pour cette boîte de dialogue ?
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  3. #3
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 415
    Points
    59 415
    Billets dans le blog
    2
    Par défaut
    Merci pour ta réponse !

    J'envisagerai ce genre de solution en dernier recours. Je vais indaguer du côté des messages de notification des contrôles mais sans grand espoir.
    Si je ne trouve pas, je vais devoir ouvrir le capot de l'objet tDialog et aller trifouiller dans le moteur...

    Si j'exécute le dialogue de manière modale (tApplication.ExecDialog), tout va pourtant parfaitement. C'est quand je l'exécute avec tApplication.MakeWindow que le traitement des messages est différent.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  4. #4
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Est-ce que ta fenêtre a le focus lorsque tu essaies d'appuyer sur les touches Enter, Space et Tab ? Si elle a le focus, je ne vois pas comment ca pourrait ne pas marcher
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. OpenGL et boîte de dialogue "non-modal"
    Par Gerber samuel dans le forum OpenGL
    Réponses: 1
    Dernier message: 27/02/2006, 23h49
  2. Réponses: 8
    Dernier message: 11/10/2005, 16h15
  3. Réponses: 2
    Dernier message: 28/07/2005, 13h58
  4. [MFC] instance unique de dialogue non modale
    Par venomelektro dans le forum MFC
    Réponses: 5
    Dernier message: 02/02/2005, 12h41
  5. dimension boite de dialogue non modale
    Par afan dans le forum MFC
    Réponses: 25
    Dernier message: 21/10/2004, 13h35

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