begin process at 2008 08 29 21:19:51
1 233 885 membres
407 nouveaux aujourd'hui
14 294 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Clic dans une image pour obtenir position --> "Transtypage de classe incorrect" [ Système / Autre ] (vieuxpere)

Clic dans une image pour obtenir position --> "Transtypage de classe incorrect" le 23/06/2008 10:40:23

vieuxpere

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, mprocedure 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 ?

Merci par avance pour vos réponses !


Re : Clic dans une image pour obtenir position --> "Transtypage de classe incorrect" le 23/06/2008 10:45:16

vieuxpere

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 ?

Merci par avance pour vos réponses !


Re : Clic dans une image pour obtenir position --> "Transtypage de classe incorrect" le 23/06/2008 11:24:43

Nicolas___
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 ...

Ciao

Re : Clic dans une image pour obtenir position --> "Transtypage de classe incorrect" le 23/06/2008 11:38:57

vieuxpere

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,


Re : Clic dans une image pour obtenir position --> "Transtypage de classe incorrect" le 23/06/2008 12:19:46

cirec
Membre Club
(Admin CS)
Réponse acceptée !
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;

 
@+
Cirec


Re : Clic dans une image pour obtenir position --> "Transtypage de classe incorrect" le 23/06/2008 14:50:30

vieuxpere
Merci de cette réponse,

Mais apres avoir testé, j'ai toujours mon X qui a la valeur 0 quelque soit la zone où je clique sur l'image.

Faut-il que j'initialise X ou cette méthode n'est pas la bonne ?

Merci pour vos réponses.

Re : Clic dans une image pour obtenir position --> "Transtypage de classe incorrect" le 23/06/2008 15:15:31

vieuxpere
Merci bcp en fait pour initialiser il fallait simplement faire X:=MP.X;

BIen cordialement,


Classé sous : image, sender, position, mp, transtypage

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS