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

Ваш аккаунт

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

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

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

Возможна ли обработка двойного щелчка мышью на кнопке (TButton)?

22K
02 декабря 2007 года
Cyril
15 / / 30.09.2007
Приветствую, господа!

1. Возможно ли создать обработку двойного щелчка на кнопке?

Дело в том, как известно, устанавливая функции обработки
события для одиночного (OnClick) и для двойного щелчка
(OnDblClick) на кнопке - обработка двойного щелчка
не вызывается, т.е. и не выполняется.

И первое, что может прийти в голову - это, конечно,
перехват интервалов между нажатиями данной кнопки
(и если интервал меньше n милисекунд, то вызывать
функцию для обработки, как бы, двойного щелчка).
Но, тогда возникает второй вопрос:

2. Как корректно перехватывать клики, откуда вызывать
проверку на интервал -из данной кнопки, на форме?

Заранее спасибо за ответ!
251
03 декабря 2007 года
SkyMаn
1.7K / / 31.07.2007
1. Через АПИшку узнать время двойного клика и проверять, что если время между кликами не превышает время двойного щелчка, то обрабатывать как двойной клик
2. Сабклассить кнопку и ловить сообщение WM_DBLLCLICK, WM_DBLRCLICK
261
03 декабря 2007 года
ahilles
1.5K / / 03.11.2005
вот пример обработки двойного щелчка по кнопке
Код:
const
  interval= 500; //максимальный интервал между кликами в милисекундах

var
  lastclick:DWORD=0;

procedure OnDblClickProc;
//выполняется когда происходит двойной щелчок
begin
  ShowMessage('двойной щелчок');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if lastclick=0 then
   lastclick:=GetTickCount
                else
    begin
     if GetTickCount-lastclick<interval then OnDblClickProc;
     lastclick:=GetTickCount;
    end;
end;
353
03 декабря 2007 года
Nixus
840 / / 04.01.2007
Раздел, вроде, про WinAPI. WM_NOTIFY+NM_DBLCLK.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог