тот-же
y:=Mouse.CursorPos.Y; //определяет общее положение курсора
попробуй проще люди тебе выше комманды написали
----------------------------------------------(непра-)
procedure TForm1.FieldClick(Sender: TObject);
var x, y, z1, z2:integer;
begin
----------------------------------------------(вильно)
ты заносишь координаты в переменную y
напрямую коммандой y:=Mouse.CursorPos.Y;//а она узнает общее положение курсора а нам надо кд.курсора у image из-за этого тебе приходится убавлять делить и т.д.
z2 := trunc((y - Form1.Top - Field.Top) / 20);//
а узнавать координаты image нужно в событии mousedown, mouseup, mousemove.
Допустим, в общем var создаем переменные X1 И Y1
var
Form1: TForm1;
x1,y1:integer;
в событии mousedown у image
пишем
x1:=x;
y1:=y;
и все, при клике на image в переменных x1 и y1
появятся точные координаты.
(и ненадо никаких
z2 := trunc((y - Form1.Top - Field.Top) / 20)