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