Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Координаты мышки НЕ относительно формы

5.2K
27 февраля 2007 года
SerMax
96 / / 04.11.2006
Всем привет !
На форме имеется основное меню + DbGrid + ещё прочее
Нужно знать координаты мышки относительно DbGrid'а и ссимулировать там нажатие кнопки мышки.
На данный момент делаю так
 
Код:
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;


Проблема в том, что получаю координаты относительно формы !! А высоту менюшки узнать нельзя. Пришлось на глаз измерять высоту в пикселях и писать

y:=MyMouse.CursorPos.y-44; //см. ниже

чтобы не сбились координаты относительно dbGrid'а.

Вроде работаеТ, но как-то некрасиво это.
Может можно узнать координаты сразу относительно DbGrid'а ??
19K
27 февраля 2007 года
Релорт
17 / / 14.09.2006
Хым. ScreenToClient не помогает? %)
5.2K
27 февраля 2007 года
SerMax
96 / / 04.11.2006
Цитата: Релорт
Хым. ScreenToClient не помогает? %)



Хех, только-только испробовал это - помогло. Спасибо за ответ, оперативно, обожаю этот форум :)
Сделал так (авось кто спросит) :

var
MyMouse: TMouse;
x,y:integer;
begin
x:=ScreenToClient(MyMouse.CursorPos).x;
y:=ScreenToClient(MyMouse.CursorPos).y;
....
end;

286
28 февраля 2007 года
misha_turist
572 / / 28.11.2005
Цитата: SerMax
Хех, только-только испробовал это - помогло. Спасибо за ответ, оперативно, обожаю этот форум :)
Сделал так (авось кто спросит) :

var
MyMouse: TMouse;
x,y:integer;
begin
x:=ScreenToClient(MyMouse.CursorPos).x;
y:=ScreenToClient(MyMouse.CursorPos).y;
....
end;


А какие координаты в какие эта функция переводит?

5.2K
28 февраля 2007 года
SerMax
96 / / 04.11.2006
Координаты мушки относительно экрана В координаты относительно объекта, над которым висит.

Вроде так, по крайней мере у меня при вызове меню (OnPopup) преобразовывались в коорд-ты относительно DbGrid (это у него всплывающее меню, в событии которого этот код)

Замудрил :)
286
28 февраля 2007 года
misha_turist
572 / / 28.11.2005
)))
Спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог