Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2011, 16:42   #1
Painkiller_13
Пользователь
 
Регистрация: 07.07.2011
Сообщений: 58
По умолчанию Перемещение курсора

Есть функция по перемещению курсора по координатам
Mouse.CursorPos:=TPoint(10,10);
Но координаты берутся со всего экрана. Можно как то сделать, чтоб координаты считались в самой форме или чтоб курсор можно было перемешать не по координатам, а на объект. Например, при нажатии на button1 курсор перемещался на button2.

Последний раз редактировалось Painkiller_13; 30.10.2011 в 18:04.
Painkiller_13 вне форума Ответить с цитированием
Старый 30.10.2011, 16:56   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

см. методы формы ClientToScreen и ScreenToClient
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.10.2011, 17:09   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
сделать чтоб координаты считались в самой форме
А приплюсовать координаты левого верхнего угла формы ?
mihali4 вне форума Ответить с цитированием
Старый 30.10.2011, 17:17   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Легко:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
with Button2 do
 Mouse.CursorPos:=ClientToScreen(Point(Width div 2,Height div 2));
end;
Идея понятна?

P.S. Кстати в винде по-моему можно настроить перепрыг мышки на кнопки окна, выставленные по умолчанке.

P.P.S. Меня кста такие выкрутасы программ бесят до жути.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.01.2012, 12:50   #5
Marinesku
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 13
По умолчанию

pt.x:=300;
pt.y:=400;
SetCursorPos(pt.x, pt.y);

И тогда курсор переместится в положение с координатами 300 и 400 пикселей. Если же вам нужно поместить курсор мыши в точку с координатами, зависящими от положения вашей формы, т.е. нажать конкретную кнопку на форме, то это делается так:

pt.x:=Form1.left+150;
pt.y:=Form1.top+200;
SetCursorPos(pt.x, pt.y);

И от верхнего левого края формы отступаем 150 и 200 пикселей.

Кликнуть мышку можно так:

mouse_event(MOUSEEVENTF_LEFTDOWN,MO USEEVENTF_ABSOLUTE,MOUSEEVENTF_ABSO LUTE,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,MOUS EEVENTF_ABSOLUTE,MOUSEEVENTF_ABSOLU TE,0,0);

http://www.delphi-vsem.ru/012.html
Marinesku вне форума Ответить с цитированием
Старый 24.01.2012, 17:50   #6
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

Если уж подняли тему... а как узнать размер бордеров формы? т.к. 150х200 самой формы не будет равно 150х200 от левого верхнего края окна
Pamparam вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перемещение курсора по таблице dm_alex73 Microsoft Office Excel 24 15.02.2011 13:16
Перемещение курсора SPQR10000 Общие вопросы Delphi 4 23.10.2010 17:27
Выпадающий список и перемещение курсора valerij Microsoft Office Excel 4 24.05.2010 12:36
Перемещение курсора мыши UNREALcv Помощь студентам 1 11.04.2010 11:39
Перемещение курсора kykysya БД в Delphi 2 07.04.2009 20:33