Вниз
Скачать: CL | DM;

Скроллер   Найти похожие ветки 

 
REA ©   (2003-01-30 14:23) [0]

У моего компонента есть скроллер и когда за него тянешь он движется рывками (ну так слегка), поскольку отрисовка съедает время. Нельзя ли придумать механизм, который бы пропускал часть действий при быстром движении мыши и рисовал все при остановке? Никто подобного не делал? Наверно можно таймер прицепить или еще что-то попроще.


 
Cancel   (2003-01-30 14:50) [1]

var
t: Integer

При событии WM_MouseMove
- запоминать в переменной t:= GetTickCount;
При событии WM_MouseLast и при инициализации;
- t:= 0;
При прорисовке -
if (GetTickCount - t > 500) then
begin
Рисовать;
end;

По моему что-то такое должно быть


 
REA ©   (2003-01-30 15:18) [2]

Нет там MouseMove - есть сообщения от скроллера. И поступают они не так как WM_MouseMove. А что если в приведенном коде (GetTickCount - t > 500) не наступит? Надо тогда еще последнее событие отслеживать. И при остановке сообщения не поступают. Вобщем другой нужен алгоритм.


 
Максимилиано   (2003-01-30 15:48) [3]

Можно попробовать на событие MouseMove (а может и на событие от скроллера) вешать запуск таймера. Этот вариант я использовал для вывода сообщений в статусбар.
Работает.

код примерно такой:

обработчик MouseMove
ScrollTimer.Enable := true;

обработчик Таймера
рисуем
ScrollTimer.Enable := false;



 
REA ©   (2003-01-30 16:49) [4]

Понятно. Я думал может есть более легальный способ. Спасибо.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
9-28580
Dmitriy Polskoy
2002-08-29 18:10
2003.02.10
DelphiX для D6


4-29146
Uka
2002-12-26 06:44
2003.02.10
Как я могу(transfer file to com port) или (send file to com port)


3-28599
Jeka
2003-01-22 15:46
2003.02.10
Подсчет итогов по столбцу таблицы


3-28584
Стас
2003-01-21 14:26
2003.02.10
Фигня с TDateTime


3-28595
cranium
2003-01-21 20:32
2003.02.10
Можно ли в ХП в качестве параметра передовать имя таблицы?




   Наверх