Voilà tout est dans le titre.
J'ai un TImage et je voudrais lorsque l'utilisateur double-clique avec le bouton droit de la souris executer un évènement.
Est-ce possible et si oui Comment faire alors ?
Merci
Voilà tout est dans le titre.
J'ai un TImage et je voudrais lorsque l'utilisateur double-clique avec le bouton droit de la souris executer un évènement.
Est-ce possible et si oui Comment faire alors ?
Merci
Bonjour.
Voici un code qui fonctionne. Si ça peut t'aider...
Fixer l'interval du TTimer à 400 ms, et la propriété Enabled à False par défaut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Const Clique : Integer = 0; procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // Timer1.Enabled := True; Inc(Clique); If Clique = 2 Then Caption := 'Bouton droit'; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Timer1.Enabled := False; Clique := 0; end;
Rien n'est moins sur que l'incertain : Pierre DAC
Excuse. J'ai fait une erreur.
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <div style="text-align: left;">Const Clique : Integer = 0; procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // If Button = mbRight Then begin Timer1.Enabled := True; Inc(Clique); If Clique = 2 Then Caption := 'Bouton droit'; end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Timer1.Enabled := False; Clique := 0; end; </div>
Rien n'est moins sur que l'incertain : Pierre DAC
Plus simple
Donc le OnMouseDown ou Up
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if (ssDouble in Shift)and(Button = MbRight) then Showmessage('');
Ca marche bien. Merci.
Par contre, j'ai l'impression que je ne pourrais plus utiliser le PopupMenu (qui s'exécute avec un seul clic droit), du moins le PopupMenu a l'air d'être prioritaire.
Faudra que je fasse un choix alors.
Merci encore à tous les 2.
En effet, je pensais que ceci pouvait faire l'affaireEnvoyé par Guigui_
Et non , ca na va pas non plus .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 var P : TPoint; begin if (Button = MbRight) then begin If SsDouble in Shift then begin ////Instruction double click droit///////////// ShowMessage('test'); end else begin P := Panel1.ClientToScreen(Point(x,y)); PopupMenu1.Popup(P.X,P.Y); //Ne pas attribué le popup dans les propriétés du composant concerné end; end;
par contre, la solution avec timer permet de tester si le clic droit est resté simple et donc de lancer le popup
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager