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

Delphi Discussion :

Sélection d'une stringgrid et d'un popup avec la souris


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut Sélection d'une stringgrid et d'un popup avec la souris
    bonjour,

    j'ai un problème avec un popup + stringgrid

    j'ai mis un menu popupmenu sur ma stringgrid, la çà marche.

    je veux aussi déclencher le popup avec un appuie long sur click gauche de la souris (comme si j'utilisais un tactile)
    j'ai donc mis un timer que j'active dans le onmousedown de la stringgrid et que je désactive dans le onmouseup.
    si le ontimer du timer se déclenche j'appelle mon popupmenu avec PopupMenu1.Popup(mouse.CursorPos.X,mouse.CursorPos.y);
    ça marche, mais le problème, c'est que une fois le popup affiché, si je bouche la souris , ça bouge la sélection de ma stringgrid (la sélection suit ma souris même si je bouge en dehors de ma forme), j'ai mis 2 videos pour montrer...
    dans la première, c'est le popup avec click droit sur la stringgrid,quand je bouge dans mon menu, ça bouge pas la sélection de la stringgrid
    dans la deuxième, c'est le popup avec click gauche sur la stringgrid,quand je bouge dans mon menu, ça bouge la sélection de la stringgrid..

    j'ai voulu mettre un stringgrid.enable:= false quand je déclenche le popup mais j'ai pas d’événement lorsque le popup s'efface pour réactiver la stringgrid..

    une idée ?

    merci
    video1: https://youtu.be/Gg29i3bHQHg

    video2: https://youtu.be/0jepYo8oSRg

    Pièce jointe 209457

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 932
    Par défaut
    Normal que ça coince, c'est le menu qui capture la souris. La StringGrid ne peut donc plus recevoir le MouseUp (tu peux mettre un point d'arrêt et tu verras que tu ne passes plus dans cet événement).
    Lance un Mouse_Event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); avant d'afficher le popup.

    Cela dit, c'est juste pour simuler le comportement d'une tablette. Sur une tablette, c'est bien un clique droit qui est généré par l'OS.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut
    en fait , c'est pas une tablette, c'est sur un écran tactile


    j'ai mis Mouse_Event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); avant d'afficher le popup.
    ça fait pareil,

    je comprends pas quand tu dis que le popup capture la souris, parce que lorsque j'affiche le popup avec mon click gauche, on dirait que justement c'est la stringgrid qui continue a capturer la souris...

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 932
    Par défaut
    Effectivement, par Mouse_Event c'est trop lent, le menu est déjà à l'écran. Alors envoie directement le message au StringGrid sans passer par le buffer clavier/souris : StringGrid1.Perform(WM_LButtonUp, 0, 0);

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut
    ahhhhh ok, j'viens de comprendre, en fait , ma stringgrid ne recevait pas le "mouse up" et donc gardait le focus, c'est ça ?


    ton StringGrid1.Perform(WM_LButtonUp, 0, 0); marche nickel

    merci beaucoup

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

Discussions similaires

  1. [gtkmm] menu popup selection
    Par drKzs dans le forum GTK+
    Réponses: 2
    Dernier message: 09/02/2007, 20h16
  2. [2.0][VB] Selection d'une valeur via une fenetre popup
    Par mout1234 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 23/11/2006, 23h41
  3. Load données dans Select ou popup ou div ou ..
    Par speedev dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 24/08/2006, 14h02
  4. sélection dans une stringgrid
    Par awax dans le forum Delphi
    Réponses: 4
    Dernier message: 17/06/2006, 20h52
  5. Réponses: 2
    Dernier message: 17/05/2006, 18h19

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