powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как получить бар-код товара без использования Edit-а?
11 сообщений из 11, страница 1 из 1
Как получить бар-код товара без использования Edit-а?
    #39460056
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В программе если кликну на Edit и потом usb-сканер направляю на товар,в Edit-е записывается штрих-код товара и потом в OnKeyPress выполняется Query1 запрос:

Код: pascal
1.
2.
Query1.text:='select * from Goods where barcode=:Edit1';
Query1.parambyname('Edit1'). asstring:=Edit1.text;



Нажимая на enter, в гриде курсор переходит на этот товар:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
procedure TForm1.EditBarcodeKeyPress(Sender: TObject; var Key: Char)
begin
    if key=#13 then begin
    keyfield:='barcode';
    keyvalues:=editbarcode.Text;
    options:=[lopartialkey];
    Form1.Query1.Locate(keyfield,keyvalues,options);                                   
    DBGrid1.setfocus;
    EditBarcode.Clear;
end;



но как найти товар бар-кодом без Edit-а? то есть просканировал и сразу переход на этот товар? Или без компонента работы с бар-кодом это невозможно?
...
Рейтинг: 0 / 0
Как получить бар-код товара без использования Edit-а?
    #39460059
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi159,

Просто обрабатывай события OnKeyPress формы (KeyPreview = true)
...
Рейтинг: 0 / 0
Как получить бар-код товара без использования Edit-а?
    #39460089
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi159... потом usb-сканер направляю на товар,в Edit-е записывается штрих-код товара
Можно сразу подставлять в параметр запроса и сразу выполнять этот запрос. Edit-же вы заполняете? т.е. устанавливаете у него свойство Text. Вот в этом месте вместо того, чтобы писать Edit1.Text := Bar.Code; пишите
Код: pascal
1.
    Form1.Query1.Locate('barcode',Bar.Code,[lopartialkey]);
...
Рейтинг: 0 / 0
Как получить бар-код товара без использования Edit-а?
    #39460099
asviridenkovDelphi159,

Просто обрабатывай события OnKeyPress формы (KeyPreview = true)
+

Либо, перенастроить сканер на режим эмуляции com-порта и будет счастье, конечно если сканер поддерживает такой режим работы. Ну а потом, читать из порта данные и обрабатывать.
...
Рейтинг: 0 / 0
Как получить бар-код товара без использования Edit-а?
    #39460305
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldmi45Delphi159... потом usb-сканер направляю на товар,в Edit-е записывается штрих-код товара
Можно сразу подставлять в параметр запроса и сразу выполнять этот запрос. Edit-же вы заполняете? т.е. устанавливаете у него свойство Text. Вот в этом месте вместо того, чтобы писать Edit1.Text := Bar.Code; пишите
Код: pascal
1.
    Form1.Query1.Locate('barcode',Bar.Code,[lopartialkey]);



goldmi45 , если предварительно кликнуть на Editbarcode, чтобы он получал фокус ввода, как я сейчас и делаю, тогда всё понятно, но допустим фокус на Dbgrid-е или на другом edit-е. Как тогда "заставить" сканер 13-цифровый код присвайвать Editbarcode без предварительного клика на него?.
...
Рейтинг: 0 / 0
Как получить бар-код товара без использования Edit-а?
    #39460323
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi159,

Сканер - это по сути доп. клавиатура. Сразу подставлять получится только если сканер будет работать в режиме эмуляции, как говорил ПаWWWлОдАрЕц. Поэтому в вашем случае лучше воспользоваться советом Свириденкова - читать в OnKeyPress формы. А режим KeyPreview = true можно включать/выключать по кнопке.

как-то так
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
type 
  TForm1 = class(TForm)
    Timer1: TTimer;
    Button1: TButton;
    procedure Button1OnClick(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure Timer1OnTimer(Sender: TObject);
  private
    barcode: string;
    procedure StartSearch(Key);
  end;

implementation

procedure TForm1.Button1OnClick(Sender: TObject);
begin
  Form1.KeyPreview := true;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  StartSearch(Key);
end;

procedure TForm1.StartSearch(Key);
begin
  Timer1.Enabled := false;
  Timer1.Enabled := true;
  
  barcode := barcode + Key;
end;

procedure TForm1.Timer1OnTimer(Sender: TObject);
begin
  Timer1.Enabled := false;
  Form1.KeyPreview := false;
  Form1.Query1.Locate('barcode', barcode,[lopartialkey]);
end;

...
Рейтинг: 0 / 0
Как получить бар-код товара без использования Edit-а?
    #39460328
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл очистить буфер
Код: pascal
1.
2.
3.
4.
5.
procedure TForm1.Button1OnClick(Sender: TObject);
begin
  barcode := '';
  Form1.KeyPreview := true;
end;
...
Рейтинг: 0 / 0
Как получить бар-код товара без использования Edit-а?
    #39460336
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут есть рабочее решение: 17597573
...
Рейтинг: 0 / 0
Как получить бар-код товара без использования Edit-а?
    #39460659
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Goldmi45 , тогда уже придётся каждый раз кликнуть на button, чтобы присваивать KeyPreview true или false. Какая тогда разница для юзера?

JaDi , что такое ProcessAutoBarcodeScan?
...
Рейтинг: 0 / 0
Как получить бар-код товара без использования Edit-а?
    #39460662
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi159,

Это процедура, где мы этот самый баркод обрабатываем... Например, открываем карточку товара или вносим куда-то в список. Самое главное на ней -- очистить буфер с кодом, чтобы он мог повторно новое значение принять.
...
Рейтинг: 0 / 0
Как получить бар-код товара без использования Edit-а?
    #39460669
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JaDi, спасибо, попробую.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как получить бар-код товара без использования Edit-а?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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