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

Langage Delphi Discussion :

Double Focus


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 134
    Points : 42
    Points
    42
    Par défaut Double Focus
    Bonjour,

    J'en ai deux applications delphi qui s'exécutent en même temps et deux claviers branchés au PC, chaque application traite les messages provenant d'un clavier.

    Le problème est que le focus dans l' Edit est soit dans la première application soit dans la deuxième, est-il possible que le focus soit dans les deux en même temps ? Ou que les messages clavier sont traités même si l'application est en deuxième plan ?

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 754
    Points : 13 340
    Points
    13 340
    Par défaut
    Tu es un peu paresseux là
    Regarde les paramètres passés à RegisterRawInputDevices, tu y trouveras la réponse.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 134
    Points : 42
    Points
    42
    Par défaut
    Bonjour Andnotor,

    Bon je c'est pas ci cette ligne qui doit être modifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RIDList[0].hwndTarget  := Handle ;
    Mais pour être claire je voudrais que l'application intercepte les messages du clavier même si elle est en arrière plan, je suis pas très a laise avec cette API mais je pense que la modification doit se faire dans la gestion du WM_INPUT et peut etre dans cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if Data.keyboard.Message = WM_KEYDOWN then
              Begin
                ActiveControl.Perform(WM_CHAR, Data.keyboard.VKey, 0);
              end;

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 754
    Points : 13 340
    Points
    13 340
    Par défaut
    Tu n'as pas lu quoi...

    RIDEV_INPUTSINK
    If set, this enables the caller to receive the input even when the caller is not in the foreground. Note that hwndTarget must be specified.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RIDList[0].dwFlags := RIDEV_INPUTSINK or RIDEV_NOLEGACY;

  5. #5
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 134
    Points : 42
    Points
    42
    Par défaut
    Franchement j'apprécie bien votre méthode, "mieux vaut apprendre à pêcher que avoir un poisson"

    Mais j'était presque sûr que c'est le "Handle" de la fenêtre cible qu'il faut changer

    En tout cas, merci dieu parce qu’on a un génie chez nous

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

Discussions similaires

  1. Focus double clic gauche JTable
    Par jacques64 dans le forum Composants
    Réponses: 2
    Dernier message: 01/04/2011, 14h22
  2. [AC-2007] formulaire double affichage déplacer le focus
    Par franc83 dans le forum IHM
    Réponses: 1
    Dernier message: 27/12/2010, 14h00
  3. String -> long double (_strlold ?)
    Par haypo dans le forum C
    Réponses: 7
    Dernier message: 25/07/2002, 20h22
  4. Réponses: 3
    Dernier message: 12/06/2002, 21h15
  5. focus en C
    Par killpilot dans le forum C
    Réponses: 8
    Dernier message: 19/04/2002, 19h19

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