![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как запретить обработку сообщения, если объект уже Destroy ? [D7, WinXP]
greyserg © (2005-05-12 21:02:00)есть компонент , отображающий html документы
есть обработчик нажатия scroll кнопки и дальнейшего перемещения курсора (делаю SendMessage своего сообщения WMMouseScroll в mousеmove, если нажата средняя кнопка)
дело в том что, в процедуре обработки сообщения WMMouseScroll цикл
который проверяет состояние нажатия scroll кнопки и не нажаты ли другие кнопки (клавиши)
а также в цикле есть Application.ProcessMessages; - для того чтобы отображался скроллируемый текст
делаю Free объекту , а процедура обработки сообщения WMMouseScroll все еще пытается обработать сообщение и вываливается Access Violation
можно ли как-нибудь в destroy запретить обработку сообщения WMMouseScroll ?
Style (2005-05-13 10:59:00) [1]>>дело в том что, в процедуре обработки сообщения >>WMMouseScroll цикл
>>который проверяет состояние нажатия scroll кнопки и не нажаты >>ли другие кнопки (клавиши)
Может стоит вынести проверку в отдельный поток?
и из WMMouseScroll делать PostMessage твоему потоку.
На Destroy придется дождаться его завершения или вырубить его.
Семен Сорокин (2005-05-13 10:48:00) [2]попробуй для отрисовки Update (или Invalidate) вместо Application.ProcessMessages.
Еще как вариант использовать PostMessage(handle, CM_RELEASE, ...) вместо Free
greyserg (2005-05-13 10:40:00) [3]>VMcL
а как правильно ? Application.ProcessMessages нужно, чтобы моя обработка сообщения WMMouseScroll не занимало всё процессорное время,а обрабатывались другие сообщения , WM_PAINT и т.д.
Кто-нибудь делал авто скроллинг при нажатом колесике ?
Мастера, помогите.
VMcL (2005-05-12 21:22:00) [4]>> greyserg (12.05.05 21:02)
> а также в цикле есть Application.ProcessMessages
Это неправильно.