Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Las Гость
|
Добавлено: Вт Янв 29 2002 22:44 Заголовок сообщения: Затык с сообщениями от мыши в Delphi |
|
|
Объясните, плиз, суть явления: Обрабатываю событие OnMouseMove или OnResize путём выполнения достаточно длительного алгоритма (перераспределение памяти и прорисовки на канве). Наблюдаю следующую беду: при интенсивном движении мышкой желаемые прорисовки (при OnMouseMove) начинают отставать от курсора или размер формы (при OnResize) не успевает изменятся... Но это логично... Но после прекращения действий мышью прорисовки продолжают инертно прорисовываться... Как победить, подскажите! Пробывал прорисовывать по таймеру, получается, но, кажется, это не очень элегантный способ... Заранее благодарен. |
|
Вернуться к началу |
|
|
mindguru Гость
|
Добавлено: Ср Янв 30 2002 08:24 Заголовок сообщения: Re: Затык с сообщениями от мыши в Delphi |
|
|
Поставь флажок типа занято/свободно, шобы второй раз не заходить в ту же процедуру. |
|
Вернуться к началу |
|
|
Las Гость
|
Добавлено: Ср Янв 30 2002 20:20 Заголовок сообщения: Re: Re: Затык с сообщениями от мыши в Delphi |
|
|
Всё не так тривиально... Эта подпрограмма никогда не имеет повторной входимости (даже если вставить в текст Application.ProcessMessages !!!) - вот это и не понятно! |
|
Вернуться к началу |
|
|
Арт Гость
|
Добавлено: Чт Янв 31 2002 13:21 Заголовок сообщения: Re: Затык с сообщениями от мыши в Delphi |
|
|
Заведи глобальную логическую переменную, которая=true, если прорисовка окончена, иначе - false. Проверяй его на событии. движения будут слегка "рванными", но всё же... |
|
Вернуться к началу |
|
|
Las Гость
|
Добавлено: Чт Янв 31 2002 21:00 Заголовок сообщения: Re: Re: Затык с сообщениями от мыши в Delphi |
|
|
Мне кажется вы не прочувствовали суть проблемы... Дело в том, что, если я прорисовываю в обработчике события в рамках одного Thread-а, то никакие другие события не обрабатываются до тех пор, пока я не кончу ... Но (может это связано с конкретной ОС Windows 98 или конкретным драйвером мыши), почему-то сообщения от мыши не появляются в моей очереди, а буферируются где-то раньше... А очередное приходит только после цикла обработки... |
|
Вернуться к началу |
|
|
Mike
Зарегистрирован: 17.11.2001 Сообщения: 339 Откуда: ekb
|
Добавлено: Вт Фев 05 2002 10:38 Заголовок сообщения: Re: Re: Затык с сообщениями от мыши в Delphi |
|
|
Ну дак и открой второй поток, который и будет заниматься перерисовкой, а в обработчике просто давай ему команду начать перерисовку, вот и все |
|
Вернуться к началу |
|
|
Las Гость
|
Добавлено: Пт Фев 08 2002 19:51 Заголовок сообщения: Re: Re: Re: Затык с сообщениями от мыши в Delphi |
|
|
Спасибо, уже так и сделал... )) Спасибо за поддержку... |
|
Вернуться к началу |
|
|
|