Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Основная";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
14-29060
Anton
2003-01-24 17:33
2003.02.10
Нужна помощь


1-28889
dtm
2003-01-30 13:16
2003.02.10
Обрамление наскольких ячеек в MS Excel при позднем связывании.


14-29098
новенький в Делфи
2003-01-25 02:40
2003.02.10
Как работает sleep()?


1-28915
ИгорьК
2003-01-31 09:58
2003.02.10
HTML редактор


1-28694
koly01
2003-01-29 15:02
2003.02.10
помогите разобраться с Tservice





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский