![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа со сканером штрих-кодов [D6, WinXP]
Сергей Ю. © (2004-09-29 15:22:00)Уважаемые мастера, подскажите как сделать так чтоб моя прога определяла что USB-ный сканер шрих считал данные? Может есть стандартные компоненты (бесплатные, а то те которые от АТОЛа просят ключ защиты) очень буду благодарен за ссылочку, а то сам искал ничего ненашел :(
Сергей Ю. (2004-10-03 10:00:00) [1]Ввел штрих-код со сканера! Я это имел ввиду.
Reindeer Moss Eater (2004-10-01 13:37:00) [2]чтоб юзер никак немог туда забить данные самостоятельно с клавы.
Для меня главное чтоб юзер обязательно ввел штрих-код в поле для него
Reindeer Moss Eater (2004-10-01 13:29:00) [3]Я не про это.
А про то, что автор о взаимно противоположных вещах говоритю
TuMOXA (2004-10-01 13:26:00) [4]ReadOnly := true;
Reindeer Moss Eater (2004-10-01 13:20:00) [5]А как быть с этм?
чтоб юзер никак немог туда забить данные самостоятельно с клавы.
simpson (2004-10-01 13:08:00) [6]> Сергей Ю. (01.10.04 13:01) [15]
Тогда зачем показывать символьное представление штрих-кода вообще? Не показывай его. Обрабатыва OnKeyPress не у Edit, а, например у панели, или у формы.
Сергей Ю. (2004-10-01 13:01:00) [7]Спасибо за совет с преффиксом, сегодня-же попробую. Для меня главное чтоб юзер обязательно ввел штрих-код в поле для него, а какой именно это будет код мне неважно, пусть юзер его правит. Суть проблемы: начисление скидки дисконтной картой. На карте есть штрих код, так главное чтоб хоть какая-то карта была считана, что это не юзер "по договоренности" с клиентом делят скидку. Во как.
simpson (2004-10-01 12:33:00) [8]> Reindeer Moss Eater © (01.10.04 11:55) [13]
Если он пытается реализовать диалоговое окно для ввода штрих-кода, и при этом хочет блокировать ввод пользователем с клавиатуры, то, конечно же, спасет.
Сложно скопировать данные в буфер, если при получении суффикса он закроет окно, в котором находится Edit.
Reindeer Moss Eater (2004-10-01 11:55:00) [9]Он как раз хочет избавиться от ввода данных пользователем.
Независимо от того, с префиксами они или нет.
Наличие префикса его не спасет.
Так как приемник данных - TEdit.
Данные появившиеся в едите со сканера всегда можно скопировать в буфер и вставить обратно изменив кусок между префиксами и суффиксами.
simpson (2004-10-01 11:45:00) [10]> Сергей Ю. (01.10.04 10:15) [9]
У подавляющего большинства сканеров штрих-кода в настройках есть возможность задать префикс (иногда - префиксы), т. е. символы, передаваемые сканером непосредственно перед данными штрих-кода, и суффикс (аналогично), передаваемый сразу после данных штрих-кода.
Суффикс удобно использовать для определения конца данных штрих-кода, ну а префикс ты вполне можешь использовать для определения факта того, что данные передаются нес клавиатуры, а с внешнего устройства.
Поскольку префиксы и суффиксы, как правило, являются служебными символами, то набрать их на клавиатуре сложно (кроме, например, символа #13).
Т. о., алогритм примерно такой: обрабатываешь OnKeyPress для Edit, и, если ранее был введен нужный префикс, то разрешаешь добавить этот символ в Edit. Если нет - просто выполняешь Key := #0 тут же, в обработчике OnKeyPress.
Reindeer Moss Eater (2004-10-01 10:19:00) [11]А суффиксы и префиксы все равно не защитят тебя от ручного ввода в едит данных пользователем.
Reindeer Moss Eater (2004-10-01 10:18:00) [12]передать в edit данные - не твоя забота.
Сергей Ю. (2004-10-01 10:15:00) [13]Как Edit отрубить я знаю, но тогда как туда передать данные со сканера?
А можно поподробнее насчет преффиков и суффиксов?
simpson (2004-10-01 10:02:00) [14]> Сергей Ю. (01.10.04 08:59) [4]
Просто настрой префиксы и суффиксы на сканере, и по ним определяй, откуда производится ввод.
Reindeer Moss Eater (2004-10-01 09:25:00) [15]procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Key := 0;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
Key := #27;
end;
Reindeer Moss Eater (2004-10-01 09:21:00) [16]Правда после этого он в фокус не попадет
Reindeer Moss Eater (2004-10-01 09:20:00) [17]Edit1.Enabled:=False;
Сергей Ю. (2004-10-01 08:59:00) [18]Дело в том что мне надо чтоб данные в Edit передавались только со сканера, чтоб юзер никак немог туда забить данные самостоятельно с клавы. Поэтому мне надо знать что со сканера идут данные, а не с клавы. Как это определить?
Gorlum (2004-09-30 10:57:00) [19]Работа сканера USB аналогична работе с клавиатурным.
Просто переводи фокус на элемент, в который надо вводить данные.
Сергей Ю. (2004-09-30 08:35:00) [20]Дык задним умом мы все крепки :) Покупал директор и со мной он несоветовался, а теперь требует чтоб я ему прогу писал по работе с этим г...-ом :(
Как вообще узнать можно что на usb-устройство идет какая-то инфа?