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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2010, 01:41   #1
Sanek_ntsk
Пользователь
 
Регистрация: 08.11.2007
Сообщений: 91
По умолчанию Положение курсора

Как узнать находится курсор на форме или нет?
Не мы такие, жизнь такая...
Sanek_ntsk вне форума Ответить с цитированием
Старый 09.01.2010, 01:43   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Событие Form.OnMouseMove.
Если "мышиный" курсор имеется в виду...
mihali4 вне форума Ответить с цитированием
Старый 09.01.2010, 01:52   #3
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Можно ещё так:
Код:
Procedure TForm1.Timer1Timer(Sender: TObject);
Var
P: TPoint;
Begin
GetCursorPos(P);
If (P.X < Form1.Left) Or (P.X > Form1.Left + Form1.Width) Or
(P.Y < Form1.Top) Or (P.Y > Form1.Top + Form1.Height) Then
Form1.Caption:='Курсор вне формы'
Else
Form1.Caption:='Курсор на форме';
End;
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 09.01.2010, 01:54   #4
Sanek_ntsk
Пользователь
 
Регистрация: 08.11.2007
Сообщений: 91
По умолчанию

Мне желательно без таймера... mihali4, можно поподробнее пожалста???
Не мы такие, жизнь такая...
Sanek_ntsk вне форума Ответить с цитированием
Старый 09.01.2010, 02:11   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Terran прав - без таймера по-простому не сделать.

Последний раз редактировалось mihali4; 09.01.2010 в 15:57.
mihali4 вне форума Ответить с цитированием
Старый 09.01.2010, 03:25   #6
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Вот, написал пример без таймера.
Код:
Var
HookHandle: HHook;
Function HookProc: Longint; Stdcall;
Var
P: TPoint;
Begin
GetCursorPos(P);
If (P.X < Form1.Left) Or (P.X > Form1.Left + Form1.Width) Or
(P.Y < Form1.Top) Or (P.Y > Form1.Top + Form1.Height) Then
Form1.Caption:='Курсор вне формы'
Else
Form1.Caption:='Курсор на форме';
End;
Procedure TForm1.FormCreate(Sender: TObject);
Begin
HookHandle:=SetWindowsHookEx(WH_JOURNALRECORD,@HookProc,HInstance,0);
End;
Procedure TForm1.FormDestroy(Sender: TObject);
Begin
If HookHandle<>0 Then
UnhookWindowsHookEx(HookHandle);
End;
Если понадобится, то можете делать проверку на сообщение от мыши, когда она движется WM_MOUSEMOVE.
Всегда рад помочь!

Последний раз редактировалось Terran; 09.01.2010 в 03:28.
Terran вне форума Ответить с цитированием
Старый 09.01.2010, 11:11   #7
Sanek_ntsk
Пользователь
 
Регистрация: 08.11.2007
Сообщений: 91
По умолчанию

Спасибо большое!!! Помогло!!!
Не мы такие, жизнь такая...
Sanek_ntsk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
положение формы blackstersl Общие вопросы Delphi 5 04.06.2009 12:59
Положение курсора в RichEdit Utkin Компоненты Delphi 5 09.02.2009 10:48
Безвыходное положение BETONOMESHALKA Общие вопросы Delphi 2 03.11.2007 19:06
Положение курсора в Memo vvaassiill Помощь студентам 4 31.05.2007 05:09
положение курсора mishel Общие вопросы Delphi 9 30.01.2007 21:37