var
MyMouse: TMouse;
x,y:integer;
begin
x:=MyMouse.CursorPos.x;
y:=MyMouse.CursorPos.y-44; //см. ниже
sendmessage(GridMain.Handle, WM_LBUTTONDOWN, MK_LBUTTON, x + y shl 16);
sendmessage(GridMain.Handle, WM_LBUTTONUP, MK_LBUTTON, x + y shl 16);
end;
Координаты мышки НЕ относительно формы
На форме имеется основное меню + DbGrid + ещё прочее
Нужно знать координаты мышки относительно DbGrid'а и ссимулировать там нажатие кнопки мышки.
На данный момент делаю так
Код:
Проблема в том, что получаю координаты относительно формы !! А высоту менюшки узнать нельзя. Пришлось на глаз измерять высоту в пикселях и писать
y:=MyMouse.CursorPos.y-44; //см. ниже
чтобы не сбились координаты относительно dbGrid'а.
Вроде работаеТ, но как-то некрасиво это.
Может можно узнать координаты сразу относительно DbGrid'а ??
Хым. ScreenToClient не помогает? %)
Цитата: Релорт
Хым. ScreenToClient не помогает? %)
Хех, только-только испробовал это - помогло. Спасибо за ответ, оперативно, обожаю этот форум :)
Сделал так (авось кто спросит) :
var
MyMouse: TMouse;
x,y:integer;
begin
x:=ScreenToClient(MyMouse.CursorPos).x;
y:=ScreenToClient(MyMouse.CursorPos).y;
....
end;
Цитата: SerMax
Хех, только-только испробовал это - помогло. Спасибо за ответ, оперативно, обожаю этот форум :)
Сделал так (авось кто спросит) :
var
MyMouse: TMouse;
x,y:integer;
begin
x:=ScreenToClient(MyMouse.CursorPos).x;
y:=ScreenToClient(MyMouse.CursorPos).y;
....
end;
Сделал так (авось кто спросит) :
var
MyMouse: TMouse;
x,y:integer;
begin
x:=ScreenToClient(MyMouse.CursorPos).x;
y:=ScreenToClient(MyMouse.CursorPos).y;
....
end;
А какие координаты в какие эта функция переводит?
Вроде так, по крайней мере у меня при вызове меню (OnPopup) преобразовывались в коорд-ты относительно DbGrid (это у него всплывающее меню, в событии которого этот код)
Замудрил :)
Спасибо!