Dans un événement OnClick de TImage, je voudrais extraire les coordonnées x, y de la souris. Je les préférerais par rapport à l'image, mais par rapport à la forme ou la fenêtre est tout aussi bon.Comment obtenir les coordonnées de la souris lors d'un clic sur un contrôle?
Répondre
Cette valeur est en coordonnées globales, donc vous pouvez traduire dans votre formulaire en utilisant la routine ScreenToClient qui traduira les coordonnées de l'écran en coordonnées de fenêtre. Selon le fichier d'aide Delphi, Windows.GetCursorPos peut échouer, Mouse.CursorPos l'enveloppe pour déclencher une exception EOsException en cas d'échec.
var
pt : tPoint;
begin
pt := Mouse.CursorPos;
// now have SCREEN position
Label1.Caption := 'X = '+IntToStr(pt.x)+', Y = '+IntToStr(pt.y);
pt := ScreenToClient(pt);
// now have FORM position
Label2.Caption := 'X = '+IntToStr(pt.x)+', Y = '+IntToStr(pt.y);
end;
Que pensez-vous de cela?
procedure TForm1.Button1Click(Sender: TObject);
var
MausPos: TPoint;
begin
GetCursorPos(MausPos);
label1.Caption := IntToStr(MausPos.x);
label2.Caption := IntToStr(MausPos.y);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SetCursorPos(600, 600);
end;
en ligne quelque part à cet une fois sauvé dans mon codesnippet DB :)
This page résoudra probablement toutes vos questions ... Mais il semble y avoir des fonctions pour aller du client aux coordonnées de l'écran et à l'arrière etc.
Bonne chance! Mouse.CursorPos contient le TPoint, qui à son tour contient les positions X et Y.
Comme d'autres l'ont dit, vous pouvez utiliser Mouse.CursorPos ou la fonction GetCursorPos, mais vous pouvez aussi simplement gérer l'événement OnMouseDown ou OnMouseUp au lieu de OnClick. De cette façon, vous obtenez vos valeurs X et Y en tant que paramètres de votre gestionnaire d'événements, sans devoir effectuer d'appels de fonction supplémentaires.
La propriété Mouse.CursorPos
vous indiquera le position actuelle de la souris. Si l'ordinateur s'exécute lentement ou si votre programme tarde à répondre aux messages, il se peut qu'il ne soit pas le même que la position de la souris lorsque l'événement OnClick
s'est produit pour la première fois. Pour obtenir la position de la souris au moment où le bouton de la souris a été cliqué sur, utilisez GetMessagePos
. Il signale coordonnées de l'écran; traduire aux coordonnées du client avec TImage.ScreenToClient
.
L'alternative est de gérer les événements OnMouseDown
et OnMouseUp
vous-même; leurs paramètres incluent les coordonnées. N'oubliez pas que les deux événements doivent se produire pour qu'un clique sur. Vous pouvez également détecter les opérations glisser, car vous ne voudriez probablement pas considérer un glisser comme un clic.
- 1. Obtenir les coordonnées d'une carte image avec un clic de souris
- 2. Coordonnées de la souris Yui sur l'élément
- 3. JFreeChart obtient les coordonnées de la souris
- 4. Comment positionner la souris sur un certain contrôle
- 5. Firefox: Obtenir les coordonnées de la souris du coin supérieur gauche de la fenêtre
- 6. En JS, comment puis-je obtenir les coordonnées de la souris à l'intérieur d'un DIV?
- 7. Comment réduire la forme d'un clic sur un contrôle webbrowser
- 8. comment obtenir les coordonnées UIImageView?
- 9. OpenGL: clic de souris projection sur la géométrie
- 10. Cocoa: Obtenir la position actuelle de la souris sur l'écran
- 11. Comment répéter un clic de souris dans .NET
- 12. Couleur de remplissage sur le triangle en utilisant le clic de la souris
- 13. Comment capturer un clic de souris sur un élément dans un ListBox dans WPF?
- 14. Comment convertir les coordonnées de l'espace écran en coordonnées de l'espace image dans un PictureFox WinForms?
- 15. Pour obtenir un menu pour un magnétiseur de code dans Vim par un clic de souris
- 16. Obtenir la position/le bouton de la souris sur l'événement DoubleClick
- 17. comment capturer un clic de souris dans actionscript 3.0
- 18. Comment détecter le clic droit de la souris tout en appuyant sur le bouton gauche de la souris dans IE?
- 19. Événements de souris spéciaux dans un navigateur: roue, clic-droit?
- 20. JavaScript: Créer un événement avec les coordonnées actuelles de la souris
- 21. Comment gérer CEdit clic de souris sous forme parent?
- 22. comment obtenir focus-suit-souris sur les tampons dans emacs?
- 23. Possible d'obtenir les coordonnées de souris actuelles avec Javascript?
- 24. changer la couleur du thème ui et le clic de souris pour passer la souris?
- 25. simulation de clic de souris directx
- 26. Interception des clics de souris lorsque la souris survole un contrôle
- 27. Obtenir les coordonnées GPS de Samsung Intrepid
- 28. java: l'activation d'un événement clic de souris
- 29. Étranglement lors du clic sur les éléments de l'étendue
- 30. Mojo.Event.tap - comment obtenir des coordonnées de prise?