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