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

Composants VCL Delphi Discussion :

OnMouseUp et double click


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 60
    Par défaut OnMouseUp et double click
    Slt!

    Soit le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure TFormAccueil.StringGrid2MouseUp(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    var rec: TRect;
        ACol, ARow: LongInt;
    begin
         if ssDouble in shift then
         begin
              StringGrid2.MouseToCell(X,Y,ACol,ARow);
              rec:=StringGrid2.CellRect(ACol,Arow);
              ShowMessage('X: '+IntToStr(X)+' Y: '+IntToStr(Y)+'           CellWidth: '+IntToStr(Rec.right));
         end;
    end;
    Pourquoi le double clique ne fonctionne t'il pas SVP?

  2. #2
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 43
    Par défaut
    Il faut que tu déplaces ton code sur le OnMouseDown ou mieux sur le OnDblClick..

    Pourquoi ? Je ne sais pas. Je regarde...

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 43
    Par défaut
    Alors je viens de regarder le code sur TControl et notamment les messages Windows reçus sur TControl.
    En ce qui concerne le double-clic, c'est à dire les message WM_LBUTTONDBLCLK, WM_RBUTTONDBLCLK, WM_MBUTTONDBLCLK, Delphi déclenche les événement de TControl OnDblClick et OnMouseDown avec le ShiftState à ssDouble. Donc effectivement tu peux gérer le double clic sur ces deux événements seulement mais pas sur le OnMouseUp.

    Par exemple, à la réception du message WM_LBUTTONDBLCLK, Delphi éxécute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure TControl.WMLButtonDblClk(var Message: TWMLButtonDblClk);
    begin
      SendCancelMode(Self);
      inherited;
      if csCaptureMouse in ControlStyle then MouseCapture := True;
      if csClickEvents in ControlStyle then DblClick;
      DoMouseDown(Message, mbLeft, [ssDouble]);
    end;
    Voila le pourquoi.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 60
    Par défaut OnMouseUp et double clique
    Hum...


    En tout cas, ça marche, merci!

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

Discussions similaires

  1. [VB.NET] DataGrid et double click
    Par mic56 dans le forum Windows Forms
    Réponses: 15
    Dernier message: 01/11/2006, 04h37
  2. simuler un double click sur une liste dans un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 1
    Dernier message: 01/09/2005, 10h45
  3. [JTree] Empecher le double-click
    Par filpinpin dans le forum Composants
    Réponses: 6
    Dernier message: 13/05/2005, 13h45
  4. Question sur double click
    Par cjacquel dans le forum MFC
    Réponses: 2
    Dernier message: 30/04/2005, 11h53
  5. [C#] [WinForms] Double click ListBox
    Par fxp17 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/04/2005, 14h58

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