|
![]() |
#1 |
Злыдни
|
Я в свое время вешал в appl.startupPost() инициализацию обертки для MSCOMM32 и там же запуск опроса ком-порта через setTimeOut(). При наличии данных в буфере порта через xInfo.parmLastActivatedForm() получал экземпляр активной формы и проверял, есть ли там спец. метод (например, activateBarcode() или какой-нить другой). Если есть - передавал управление в этод метод вместе со считанным штрих-кодом, а в нем уже писал обработчик штрих-кода. Примерно так.
PS разработку от EVGL не смотрел :-( |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от Yprit
![]() Я в свое время вешал в appl.startupPost() инициализацию обертки для MSCOMM32 и там же запуск опроса ком-порта через setTimeOut(). При наличии данных в буфере порта через xInfo.parmLastActivatedForm() получал экземпляр активной формы и проверял, есть ли там спец. метод (например, activateBarcode() или какой-нить другой). Если есть - передавал управление в этод метод вместе со считанным штрих-кодом, а в нем уже писал обработчик штрих-кода. Примерно так.
PS разработку от EVGL не смотрел :-( ![]() ![]() Римантас |
|
![]() |
#3 |
Злыдни
|
Цитата:
Сообщение от Rimantas
![]() Простите , но для моей головы такое слишком сложно - непонял я здесь многое ...
![]() ![]() Римантас |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от Yprit
![]() Чтобы во время работы формы реагировать на прерывания ком-порта, проще всего повесить на форму ActiveX MSComm.ocx (по-моему, он так назывался) и перекрыть у него метод onEvent_OnComm(), который срабатывает при считывании данных ш/к сканером. Если Вы хотите работать без ActiveX, то Вам придется самому организовывать периодический опрос ком-порта на предмет наличия в буфере данных. На форуме обсуждался вопрос об организации такого механизма в отдельном потоке - но, кажется, универсального решения не получилось.
![]() |
|