Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поймать событие 
:(
    Опции темы
Zlo
Дата 6.8.2006, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 18.9.2004

Репутация: 1
Всего: 1



Как можно узнать находится ли курсор над кнопкой в момент нажатия?
PM MAIL   Вверх
Alexeis
Дата 6.8.2006, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



В onClick вставить код
Код

  var
    rct : TRect;
    p : TPoint;
begin
  p := Mouse.CursorPos;
  GetWindowRect(Button1.Handle, rct);
  if (p.X > rct.Left) and (p.X < rct.Right) and
     (p.Y > rct.Top) and (p.Y < rct.Bottom)
  then
     ShowMessage('inRect')
  else
     ShowMessage('NotinRect');
..................


Это сообщение отредактировал(а) alexeis1 - 6.8.2006, 17:29


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Демо
Дата 6.8.2006, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  if ptInRect(Button1.ClientRect,Button1.ScreenToClient(Mouse.CursorPos))
    then ShowMessage('Внутри');
end;




--------------------
    
PM MAIL ICQ Skype   Вверх
Zlo
Дата 6.8.2006, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 18.9.2004

Репутация: 1
Всего: 1



А нельзяли как то узнать наступило у кнопки событие OnMouseMove. Что-то типа вот такого:
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
if Button1.OnMouseMove=true then
end;

PM MAIL   Вверх
Alexeis
Дата 6.8.2006, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Цитата(Zlo @  6.8.2006,  20:48 Найти цитируемый пост)
А нельзяли как то узнать наступило у кнопки событие OnMouseMove

Оно возникает всегда, если курсор над кнопкой. Хотя бы раз.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Fedia
Дата 7.8.2006, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

Репутация: 8
Всего: 13



Цитата(Zlo @  6.8.2006,  20:48 Найти цитируемый пост)
А нельзяли как то узнать наступило у кнопки событие OnMouseMove. Что-то типа вот такого:

Если происходит нажатие на кнопку мышкой, то до этого момента должно было сработать событие Button1.OnMouseMove. Ведь оно срабатывает при движении мышкой над объектом. Т.е. надобность в такой проверке:
Код

if Button1.OnMouseMove=true then
 отпадает само собой.


--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
Alexeis
Дата 8.8.2006, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Zlo, хочет защитить прогу от виртуального нажатия, но если даже програмно позиционировать курсор, то все равно возникает OnMouseMove


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1212 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.