Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа со сканером / 9 сообщений из 9, страница 1 из 1
20.09.2019, 18:25
    #39864811
арт2010
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со сканером
Может кто поделиться кодом? Надо внедрять в самописное ПО (delphi 2007) работу со сканерами в связи с маркировкой лекарственных средств. до это сканеров не было вообще. Надо разобраться как вврбще с ним работать вообще, быстрое гугление пока ничего рабочего не дало
...
Рейтинг: 0 / 0
20.09.2019, 18:28
    #39864812
арт2010
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со сканером
Сканер штрих кодов естественно
...
Рейтинг: 0 / 0
20.09.2019, 22:47
    #39864890
GrigoriyFomin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со сканером
арт2010,

обычные штрих-код сканеры ставятся как HID-клавиатуры и при нажатии кнопки сканирования на пистолете - сканируют штрих-код, пытаются его раскодировать и при успехе пикают и эмулируют нажание клавиш на клавиатуре. То есть можно открыть блокнот и пропикать штрихкоды - должны вставиться строки с цифрами. Фишка - каждый сканер может выдавать лидирующий символ - типа начало штрихкода - это в настройках можно отключить. Мы закупали разные сканеры, они разные лидирующие символы выдавали, нередко это символ !
можно просто игнорить в окне ввода все символы, кроме цифр, #8 и #13, и тогда штрихкод можно внести как с клавиатуры обычно, так и сканером.

вот мой кусок кода работы со сканером. edBarcode - обычный TEdit
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
procedure TCheckForm.edBarcodeKeyPress(Sender:TObject;var Key:Char);
begin
  if Key = #13 then
  begin
    ProcessBarcode(edBarcode.Text);
    edBarcode.Text:='';
  end;
  if not charinset(Key,['0' .. '9',#8]) then Key:=#0;
  edBarcode.SetFocus;
end;
...
Рейтинг: 0 / 0
24.09.2019, 09:12
    #39866059
Cobalt747
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со сканером
GrigoriyFomin,

Но лучше их переводить в режим виртуального ком-порта.
Точно будешь знать, что это данные от сканера, и не будешь зависеть от раскладки клавиатуры и зажатого Shift/Caps
...
Рейтинг: 0 / 0
24.09.2019, 10:30
    #39866110
Softologic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со сканером
Cobalt747GrigoriyFomin,

Но лучше их переводить в режим виртуального ком-порта.
Точно будешь знать, что это данные от сканера, и не будешь зависеть от раскладки клавиатуры и зажатого Shift/Caps

Определенно! Давно работаю со сканерами и обработка месседжей в виде событий куда приятнее, поскольку нет нужды тыкать мышью в определенное поле ввода.
...
Рейтинг: 0 / 0
25.09.2019, 03:24
    #39866629
V.Borzov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со сканером
арт2010,

Если в режиме клавиатуры, то можно привязаться к TApplicationEvents.OnMessage, вылавливать оттуда Msg.message = wm_char и обрабатывать. Надо дождаться префикса, который поступает со сканера, какой-нибудь символ, который от юзера вряд ли поступит, сожрать всё до поступления суффикса, и выдать готовый штрихкод всем заинтересованным объектам. Префиксы и суффиксы практически во всех штрихкодах легко программируются. Если нет, то можно завязаться на таймауты, но тут чуть сложнее.

Если в режиме com-порта, то программировать еще проще, не надо думать, откуда пришел этот сигнал. Как читать из COM-порта, можно погуглить. Щас набрал "delphi чтение из com-порта", и был удивлен, сколько вариантов есть. Но мы делали как-то вроде вот этого: https://toster.ru/q/127263.

Наконец, чтобы вообще не париться, можно купить драйвер АТОЛ сканеров штрихкодов. Стоит недорого, всё становится элементарно.
...
Рейтинг: 0 / 0
30.09.2019, 08:39
    #39868880
dartveider13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со сканером
Я использую библиотеку TComPort. На мой взгляд элементарная штука. Сканеры у меня работают в режиме виртуального COM-порта. Для этого ставим драйвер, переводим сканер в соответствующий режим через настроечные ШК. Ну и делаем обработчик событий TComPort в Delphi.
...
Рейтинг: 0 / 0
30.09.2019, 13:58
    #39869142
Softologic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со сканером
dartveider13Я использую библиотеку TComPort. На мой взгляд элементарная штука. Сканеры у меня работают в режиме виртуального COM-порта. Для этого ставим драйвер, переводим сканер в соответствующий режим через настроечные ШК. Ну и делаем обработчик событий TComPort в Delphi.
А можете показать пример кода, например, при обработке событий?
И какой именно драйвер используете?
...
Рейтинг: 0 / 0
30.09.2019, 15:41
    #39869243
DmSer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со сканером
И какой именно драйвер используете?

Для каждой модели сканеров обычно разные драйвера. В хороших драйверах СОМ-порт не исчезает при выдёргивании сканера из USB. Информация о драйвере должна идти в документации к сканеру. Также в документации указано, как перевести драйвер в режим СОМ-порта.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа со сканером / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]