Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];

Вниз

OPOS   Найти похожие ветки 

 
StriderMan ©   (2007-06-04 13:19) [0]

Кто имел дело с сабжем, отзовитесь! Нужен хелп.


 
StriderMan ©   (2007-06-04 17:00) [1]

В частности интересует, как заставить OPOS-клавиатуру работать как обычную. Помню, что должна быть подобная тулза. Но как называется...


 
StriderMan ©   (2007-06-05 15:37) [2]

UP


 
Иа   (2007-06-06 03:14) [3]

Устанавливаешь OPOS CC, вешаешься на data event а дальше должно быть дело техники.


 
StriderMan ©   (2007-06-07 09:35) [4]


> Иа   (06.06.07 03:14) [3]

спасиб, уже ушел далеко вперед в исследовании OPOS. :)

была еще проблема в следующем:

возвожу флажок

DataEventEnabled := true;

приходит событие от клавы. После обработчика флаг DataEventEnabled сбрасывается в false. Принудительно выставлял в обработчике - не помогло, сбрасывается ПОСЛЕ обработчика. Помучался пару дней, даже таймер вешал, который флаг возводит при падении :D

а ларчик просто открывался:

procedure TForm1.kbOPOSDataEvent(....);
begin
DataEventEnabled := false;
 try
    //тело обработчика
 finally
    DataEventEnabled := true;
 end;
end;


Есть подозрение, что событие приходит в ControlObject, но ServiceObject не ждет его обработки, и в своем потоке идет дальше. А так как событие еще не обработано, то флаг сбрасывается. Не претендую на правду, но такими умозаключениями пришел к своему решению.

Самое обидное что в доках этого не описано. Надеюсь кому-то поможет.


 
Иа   (2007-06-07 10:14) [5]


> Самое обидное что в доках этого не описано. Надеюсь кому-
> то поможет.


Как не написано, это грабли известные. Читать OPOS Application Programmer Guide перед сном.

When the application is ready to receive input from the device, it sets the
DataEventEnabled property to TRUE.  Then, when input is received (usually as a
result of a hardware interrupt), the Control enqueues and delivers a DataEvent.  Just before delivering this event, the Control disables further data events by setting the DataEventEnabled property to FALSE.  This causes subsequent input data to be enqueued by the Control while the application processes the current input and associated properties.  When the application has finished the current input and is ready for more data, it reenables events by setting DataEventEnabled to TRUE.

Давно было однако а помню. Я собственно сами OPOS драйвера писал ко всяческим девайсам.


 
StriderMan ©   (2007-06-07 10:57) [6]

там написано что CO сам сбрасывает флаг, и типа после обработки его надо выставить. Но если просто в конце обработчика поставить DataEventEnabled := true, то ПОСЛЕ обработчика он все равно сбросится.
Фишка в том что в начале обрабочика надо ручками флаг самому сбросить. я это имел ввиду.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.054 c
3-1176197793
vlva
2007-04-10 13:36
2007.07.08
Ошибка Share violation


1-1178559317
Dmitry_177
2007-05-07 21:35
2007.07.08
Как chm-файлы справки открывать в программе?


1-1178460987
sinus
2007-05-06 18:16
2007.07.08
ANSII ( кодировка ДОС ) в ANSI ( кодировка Win )


11-1164483786
KingMidas
2006-11-25 22:43
2007.07.08
Проблема с Memo и CheckBox


15-1181041830
ZeroDivide
2007-06-05 15:10
2007.07.08
Домашние финансы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский