![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
изменить порядок обработки событий. [D5]
Зина © (2003-01-16 13:39:00)Мастера, помогите пожалуйста !
Я работаю с "железом" (СОМ-порт, к примеру).
Посылаю данные, жду ответа.
Пока жду, кручусь в цикле
Application.ProcessMessages;
Но я не хочу, чтобы обрабатывались события от мыши и клавиатуры.
Только системные, таймер и.т.п.
Но эти нажатия на кнопки не должны совсем пропасть, а должны остаться в очереди до лучших времен.
Когда завершится эта процедура.
Такое возможно ?
Digitman (2003-01-17 09:40:00) [1]
> События от порта ждутся с помощью WaitCommEvent
Совершенно необязательно. Ожидание коммуникационных событий вполне можно совместить с ожиданием любых других объектов синхронизации и Win32-сообщений, циклически вызывая в осн.код.потоке в MsgWaitForMultilpleObjects(). До тех пор, пока не сработало коммуник.событие, можно получив сообщения от мыши/клавы оставлять их в очереди и не обрабатывать по TranslateMessage()/DispatchMessage()
jack128 (2003-01-17 09:15:00) [2]Я так понимаю полюбому надо выносить в отдельный поток
События от порта ждутся с помощью WaitCommEvent, SetCommMask
Digitman (2003-01-16 13:48:00) [3]
> MBo
Если обработка вх.данных несложная, imho, нет резона выносить ее в доп.код.поток.... а вот сложная иль несложная - это автору определяться нужно
Digitman (2003-01-16 13:45:00) [4]возможно
приведи весь фрагмент кода отправки-ожидания-приема, че-нть посоветуем дельное
MBo (2003-01-16 13:45:00) [5]почему бы не работать с портом в отдельном потоке, тогда в главном можно вытворять что угодно