Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Затык с сообщениями от мыши в Delphi

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Las
Гость





СообщениеДобавлено: Вт Янв 29 2002 22:44    Заголовок сообщения: Затык с сообщениями от мыши в Delphi Ответить с цитатой

Объясните, плиз, суть явления:
Обрабатываю событие OnMouseMove или OnResize путём выполнения достаточно длительного алгоритма (перераспределение памяти и прорисовки на канве). Наблюдаю следующую беду: при интенсивном движении мышкой желаемые прорисовки (при OnMouseMove) начинают отставать от курсора или размер формы (при OnResize) не успевает изменятся... Но это логично... Но после прекращения действий мышью прорисовки продолжают инертно прорисовываться... Как победить, подскажите! Smile Пробывал прорисовывать по таймеру, получается, но, кажется, это не очень элегантный способ... Smile Заранее благодарен.
Вернуться к началу
mindguru
Гость





СообщениеДобавлено: Ср Янв 30 2002 08:24    Заголовок сообщения: Re: Затык с сообщениями от мыши в Delphi Ответить с цитатой

Поставь флажок типа занято/свободно, шобы второй раз не заходить в ту же процедуру.
Вернуться к началу
Las
Гость





СообщениеДобавлено: Ср Янв 30 2002 20:20    Заголовок сообщения: Re: Re: Затык с сообщениями от мыши в Delphi Ответить с цитатой

Всё не так тривиально... Эта подпрограмма никогда не имеет повторной входимости (даже если вставить в текст Application.ProcessMessages !!!) - вот это и не понятно! Smile
Вернуться к началу
Арт
Гость





СообщениеДобавлено: Чт Янв 31 2002 13:21    Заголовок сообщения: Re: Затык с сообщениями от мыши в Delphi Ответить с цитатой

Заведи глобальную логическую переменную,
которая=true, если прорисовка окончена, иначе - false. Проверяй его на событии. движения будут слегка "рванными", но всё же...
Вернуться к началу
Las
Гость





СообщениеДобавлено: Чт Янв 31 2002 21:00    Заголовок сообщения: Re: Re: Затык с сообщениями от мыши в Delphi Ответить с цитатой

Мне кажется вы не прочувствовали суть проблемы... Дело в том, что, если я прорисовываю в обработчике события в рамках одного Thread-а, то никакие другие события не обрабатываются до тех пор, пока я не кончу Smile ... Но (может это связано с конкретной ОС Windows 98 или конкретным драйвером мыши), почему-то сообщения от мыши не появляются в моей очереди, а буферируются где-то раньше... А очередное приходит только после цикла обработки... Smile
Вернуться к началу
Mike



Зарегистрирован: 17.11.2001
Сообщения: 339
Откуда: ekb

СообщениеДобавлено: Вт Фев 05 2002 10:38    Заголовок сообщения: Re: Re: Затык с сообщениями от мыши в Delphi Ответить с цитатой

Ну дак и открой второй поток, который и будет заниматься перерисовкой, а в обработчике просто давай ему команду начать перерисовку, вот и все
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Las
Гость





СообщениеДобавлено: Пт Фев 08 2002 19:51    Заголовок сообщения: Re: Re: Re: Затык с сообщениями от мыши в Delphi Ответить с цитатой

Спасибо, уже так и сделал... Smile)) Спасибо за поддержку...
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...