Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сканер штрих-кодов


MU ©   (2006-11-30 17:31:00) 

Добрый день.
Есть сканер штрихкодов, который по радиодоступу посылает считанные штрих коды в разрыв клавиатуры.
Задача состоит в том, чтобы отличить этот поток от обыкновенных параллельных нажатий на этом же компьютере.
что посоветуете? в какую сторону рыть?


fd979   (2007-02-12 11:07:00) [1]


> Глобальный хук ставить надо, а не onKeyDown формы.   Оператор
> прифигеет каждый раз фокус на контрол ставить.

Как раз если поставить KeyPreview не надо будет фокус на контрол ставить.


> Не могли бы вы обяснить что за " True (design-time) "

У формы есть такое свойство KeyPreview. Открываешь Object İnspector  и ставишь это свойство True.
Если OnKeyDown ловит и сканер, тогда:

Сначала сделай так. Пропиши вот это:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 ShowMessage(IntToStr(Key));
end;

Запусти программу. Нажми на сканер. Если правда то, что ты говоришь, тогда сработает FormKeyDown и покажет тебе код клавиши  сканера запомни это число.
Потом меняешь всю эту канитель на:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 If Key = Число которое ты запомнил Then
 begin
   Здесь случай когда сканер сработал
 end
 else
 begin
   Здесь случай когда клава
 end
end;


Zladey   (2007-02-12 10:26:00) [2]

Не могли бы вы обяснить что за " True (design-time) "
а то в объект инспекторе ставлю ... OnKeyDown ловит и сканер..........


tesseract   (2007-02-12 10:09:00) [3]


> Затем на OnKeyDown можешь проверять изменился ли текст,
> если да, то с клавиатуры. А при изменении со сканера OnKeyDown
> не всплывет.


Глобальный хук ставить надо, а не onKeyDown формы.   Оператор прифигеет каждый раз фокус на контрол ставить.


fd979   (2007-02-12 09:23:00) [4]

Кстати OnKeyDown формы...


fd979   (2007-02-12 09:22:00) [5]

Поставь KeyPreview формы True (design-time)

Затем на OnKeyDown можешь проверять изменился ли текст, если да, то с клавиатуры. А при изменении со сканера OnKeyDown не всплывет.


Zladey   (2007-02-12 09:06:00) [6]

дело в том, что не на Edit у меня код.. для сом сканера... и на форме тоже... шрих кодом можно команду нажать Add или END на форме.. мне нужно различие... узнать что вводятся симфолы именно со сканера , а не с клавиатуры


fd979   (2007-02-10 15:58:00) [7]

А тебе, что обязально ввод с клавиатуры нужен? Сделай просто РидОнли и все.


Zladey   (2007-02-10 12:01:00) [8]

это понятно... задача в том чтобы отличить ввод со сканера от ввода с клавиатуры...


fd979   (2007-02-10 11:15:00) [9]

Обычно сканеры штрих-кодов выдают сканированное значение в активный control. Им может быть твоя компонента из TЕdit.

У меня есть такой сканер - он так работает. Обрабатываю OnChange и все прекрасно.


Zladey   (2007-02-10 10:56:00) [10]

А нельзя как то отличить этот сканер от клавиатуры... по прерываниям,например?

tesseract ©
А как вы определяете скорость ввода символов?


tesseract   (2006-12-01 10:03:00) [11]

Решил проблему следующим образом - если символы вводяться со скоростью больше, чем например символв в 10 мс, то это явно сканер и можно сгенерировать прерывание.


ev   (2006-11-30 19:18:00) [12]

да, там обязательно должен быть драйвер либо использоваться стандартный
лично я купил USB + блютулз
использую блютулз, через него так же эмулируется обычный ком порт и с ним работаю :)


MU   (2006-11-30 18:23:00) [13]

да спасибо, (очень смешно!)
я думаю (надеюсь), что там будет драйвер для вирт. COM-порта и это решит все проблемы.


Array   (2006-11-30 18:11:00) [14]


> это пока что теоретический вопрос


ну тогда Вам сюда
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1164362132&n=18


MU   (2006-11-30 18:05:00) [15]

это пока что теоретический вопрос. конкретной модели еще не знаю. просто хотел узнать, какие пути есть для решения задач. у кого есть опыт?


Array   (2006-11-30 17:58:00) [16]


> сканер включается не в разрыв клавиатуры а через USB


а с ним ПО какоенить ?


MU   (2006-11-30 17:50:00) [17]

извините господа, меня ввели в заблуждение и я вас запутал.
сканер включается не в разрыв клавиатуры а через USB


MU   (2006-11-30 17:38:00) [18]

наверняка же есть различия между одним способом ввода и другим - сканкоды, признаки нажати-отпускания клавиш


Array   (2006-11-30 17:36:00) [19]


> MU ©   (30.11.06 17:31) 


да ни в какую... просто обрабатывать эти сообщения тока в том случае если зделан запрос на ввод штрих-кода сканером

или выкавырять клавиатуру...


Наверх

Титульная страница Поиск, карта сайта Написать письмо