Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2013, 23:49   #11
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

BCOMport и прочие были написаны давно, до появления юникодных Delphi. Измените все типы string на ansistring, и прочее в самом компоненте и у себя. Поможет.

Что до:
Цитата:
Замечтательно надейться на то что у сканера будет соответствующий коннектор для СОМ )
USB сканеры могут работать (притворяться) не только как HID, но и использовать виртуальный COM over USB.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 22.12.2013, 23:56   #12
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Цитата:
Сам сканер настраивается на добавление к ШКИ либо клавиши TAB либо ENTER, что и дает подобие ввода с клавиатуры, причем законченного ввода.
Вот тут и мой косяк. Вот я осел, только сейчас увидел что он кроме циферок еще передает и параметры.
А почему именно OnKeyPress?

И тогда второй вопрос, продавцу на кассе надо постоянно ставить курсор в поле "поиск по штрихкоду"?
Как отловить с него данные, даже если сейчас курсор на гриде?

Последний раз редактировалось tarakan1983; 23.12.2013 в 00:03.
tarakan1983 вне форума Ответить с цитированием
Старый 23.12.2013, 00:13   #13
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Как отловить с него данные, даже если сейчас курсор на гриде?
и тут мы плавно переходим в тему http://programmersforum.ru/showthread.php?t=211337
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 23.12.2013, 00:19   #14
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Цитата:
и тут мы плавно переходим в тему http://programmersforum.ru/showthread.php?t=211337
я этого и ожидал!

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ха! Я удивлен что с клавиатуры отрабатывает нормально )
Сканер нужно настроить чтоб он выдавал вместе со ШКИ нажатие клавиши Энтер. Делается это (надеюсь ты знаешь) настроечными таблицами для сканера.
После чего твой код нужно перенести в OnKeyPress, и прописать условие нажатия энтера:
Код:
Procedure Edit1OnKeyPress(...);
var
    BAR : string;
begin
if key<>#13 then exit;
BAR:=Trim(Edit1.Text);
  if BAR<>'' then
    begin
    with QGood do
    begin
      Active:=False;
      ParamByName('BAR').AsString:='%'+BAR+'%';
      Active:=True;
    end;
    end;
end;
Это даст гарантию что ШКИ введен полностью.
Сам сканер настраивается на добавление к ШКИ либо клавиши TAB либо ENTER, что и дает подобие ввода с клавиатуры, причем законченного ввода.
И еще с этим кодом такая проблема, я так понял, что событие OnKeyPress(...) наступает до того как заполняется edit, поэтому при первом нажатии переменная BAR='' как выйти из этой ситуации?

Последний раз редактировалось Stilet; 23.12.2013 в 09:30.
tarakan1983 вне форума Ответить с цитированием
Старый 23.12.2013, 09:30   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
поэтому при первом нажатии переменная BAR='' как выйти из этой ситуации?
Обрати внимание на условие key<>#13
Тебе по барабану какое там где нажатие, потому что BAR заполняется всем что введено только после ввода энтера.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.12.2013, 09:53   #16
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Я думал что Вы ошиблись здесь в коде, ведь получается, когда я буду набирать штрихкод с клавиатуры, то он просто будет выходить из этой процедуры.


Все разобрался, просто я осуществлял поиск при нажатии любой клавиши с клавиатуры, а надо искать только после нажатия ентер.
Спасибо Stilet не дал уйти в каменный век к com-портам.

Последний раз редактировалось tarakan1983; 23.12.2013 в 10:10.
tarakan1983 вне форума Ответить с цитированием
Старый 23.12.2013, 10:23   #17
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Все разобрался...
да походу нет, вы пошли другим путем.

Цитата:
уйти в каменный век к com-портам
сие спорный вопрос, но это за рамками темы
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 23.12.2013, 10:30   #18
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я осуществлял поиск при нажатии любой клавиши с клавиатуры
Один из самых эффективных кошмаров поисковых механизмов )
Особенно если предидущий поиск еще не закончен, а новый уже начался.
Цитата:
сие спорный вопрос, но это за рамками темы
Верно. Спорный. Но в данном конкретно случае неуместный.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор БД для работы на сервере и компонентов доступа к ней для разработки клиентской части zizz БД в Delphi 9 24.01.2013 03:27
для работы написать макрос для Excel и Word.... smanna Microsoft Office Excel 2 30.11.2010 12:43
Для облегчения работы с TFS - приложение для работы над дефектами и задачами Аякс Софт 1 18.03.2009 11:43