vieuxpere
Messages postés195Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention17 décembre 2014
-
23 juin 2008 à 10:40
vieuxpere
Messages postés195Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention17 décembre 2014
-
23 juin 2008 à 15:15
Bonjour, je souhaite qu'en cliquant sur mon bouton (boutton1) j'ai la position (x, y) de la souris à l'instant T sur mon image (image1), à noter que mon bouton se trouve dessus mon image --> l'image étant donc derriere le bouton !).
En posant quelques questions sur le forum, j'ai obtenu le code suivant mais j'ai le message d'erreur "Transtypage de classe incorrect", le code est le suivant :
procedure TForm1.Button1Click(Sender: TObject);
var MP : TPoint;
begin
GetCursorPos(MP);
MP := (sender as TImage).ScreenToClient(MP);
var MP : TPoint;
begin
GetCursorPos(MP);
MP := (sender as TImage).ScreenToClient(MP);
end;
Aussi mes questions sont les suivantes :
- Est-ce que ce code, via ajustements, est le bon pour faire ce que je veux faire ?
- Si non, qu'est-ce que je devrais faire ?
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 23 juin 2008 à 12:19
Salut,
l'erreur est normal et même logique
procedure TForm1.Button1Click(Sender: TObject);
var MP : TPoint;
begin
GetCursorPos(MP);
MP := ( sender as TImage).ScreenToClient(MP);
end;
Sender représente l'objet qui a déclenché l'évènement et donc dans ce cas,
en règle général, c'est Button1 qui le déclenche lui même ... donc Sender = TButton
et forcement (Sender as TImage) n'est pas apprécié par le compilateur
pour ton cas de figure il faut utiliser l'évènement OnClick où OnMouseDown de l'objet TImage.
sinon pour passer par un TButton tu peux essayer comme ceci:
procedure TForm1.Button1Click(Sender: TObject);
var MP : TPoint;
begin
GetCursorPos(MP);
MP := Image1.ScreenToClient(MP);
end;
vieuxpere
Messages postés195Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention17 décembre 2014 23 juin 2008 à 10:45
Je le reposte,
Bonjour, je souhaite qu'en cliquant sur mon bouton (boutton1) j'ai la position (x, y) de la souris à l'instant T sur mon image (image1), à noter que mon bouton se trouve dessus mon image --> l'image étant donc derriere le bouton !).
En posant quelques questions sur le forum, j'ai obtenu le code suivant mais j'ai le message d'erreur "Transtypage de classe incorrect", le code est le suivant :
procedure TForm1.Button1Click(Sender: TObject);
var MP : TPoint;
begin
GetCursorPos(MP);
MP := (sender as TImage).ScreenToClient(MP);
end;
Aussi mes questions sont les suivantes :
- Est-ce que ce code, via ajustements, est le bon pour faire ce que je veux faire ?
- Si non, qu'est-ce que je devrais faire ?
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 23 juin 2008 à 11:24
Salut,
Je comprends ce que tu veux faire mais si ce n'est pas indiscret pourquoi veux tu faire cela ?
Qu'elle est le but de ta manœuvre ?
Parce que je suis sur qu'il y a surement moyen de faire autrement ce que tu veux réaliser ...
vieuxpere
Messages postés195Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention17 décembre 2014 23 juin 2008 à 11:38
En gros je dessine une grille horaire en canvas sur une image, je souhaite savoir où se situe le pointeur de la souris afin de savoir sur quelle zone horaire il se trouve.
Cordialement,
Vous n’avez pas trouvé la réponse que vous recherchez ?