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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2011, 10:54   #1
{Shadowevil}
Пользователь
 
Регистрация: 15.01.2009
Сообщений: 52
По умолчанию события по скроллингу мышью

Добрый день. Возникла проблема Есть TrackBar, который изменяет свое значение при событии onMouseWheelUp
Код:
procedure TfrmMain.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
...
 TrackBar1.Position:=TrackBar1.Position+1;
...
end;
Так вот, проблема заключается в том, что когда я заканчиваю крутить колесо мыши, мне надо включить Timer, а как обработать событие
Код:
if <Колесо мыши крутится>=false then
begin
Timer1.Enabled:=true;
....
end;
Не подскажете есть такой обработчик в природе вообще или нет?
{Shadowevil} вне форума Ответить с цитированием
Старый 28.12.2011, 11:48   #2
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

вот пример обработки прокрутки мыши http://www.sql.ru/forum/actualthread.aspx?tid=284663
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 28.12.2011, 11:55   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

Не думаю что Вы найдёте это событие, ибо кручение колеса не есть непрерывное действие, оно дискретно, и на каждое одинарное вращение генерируется событие (вверх или вниз соответственно).

Можно сделать по другому немного. Создать таймер, в котором указать примерный период после прокручивания колеса, например 2 секунды interval := 2000. После срабатывания скрол-события, вы запускаете таймер этот (точнее запускаете и останавливаете подряд, чтобы сбросить "текущее время таймера" - я точно не знаю, в справке не написано, заново идёт отсчёт или нет) и если этот таймер сработает, значит прошло 2 секунды и можно запускать то что вам надои этот таймер выключить. Если же не пройдёт 2 секунд а юзер снова скроллит, то каждое скорл событие будет как бы перезапускать каждый раз этот таймер.
Получится такая эмуляция события завершения скрола, интервал срабатывания установите по своему вкусу в миллисекундах.
phomm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление мышью Akira- Общие вопросы Delphi 1 14.09.2010 20:45
События в WPF. Обращение к компонентам формы из события Casper-SC Общие вопросы .NET 3 25.07.2010 19:03
работа с мышью! _Timon Помощь студентам 1 20.01.2009 23:29