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

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

Ввод в TЕdit руками или сканером штрихкода. [D7, XP]


Страницы:   1 2 3 4 5 6

Laguna ©   (2011-10-24 13:12:00) 

Возможно ли как то определить чем был произведен ввод в TEdit руками с клавиатуры или сканером штрихкода?


Laguna   (2011-10-25 00:11:00) [41]

> sniknik ©   (24.10.11 23:39) [61]


> > Какой сканер есть в наличии с тем и работаем :)цена вопроса
> 50-100$ поменять.

Здесь не решается вопрос на уровне пользователей. Закупает сканеры головное предприятие. А подчененных более 4500. Т.ч. сами понимаете, что шиковать не приходится. Поэтому и пытаюсь решить задачу малой кровью при малом количестве часов, отпушенных на решение задачи.

Сейчас пересматривал возможность перехода к одному Edit. Оказывается не зря все же я делпал разделение ввода. При считке сканером к примеру билет читается как серия + номер+ индекс. Приручном вводе поля ввода разделяются(в другой задаче). Здесб же нужно вводить только номер + индекс. Короче тут tit и фейс самой проги завязан. Т.ч. звиняйте, может и по колхозному, но...


Rouse_   (2011-10-25 00:07:00) [42]


> DiamondShark ©   (24.10.11 23:59) [62]

Тяжко... ты действительно не представляешь схему, а вроде по моим представлениям должен был понимать...

Хм, попробую дать намек.
Ты сказал: " в случае очень быстрого темпа аппаратных событий "клавиша" может быть давно отпущена".

Вопрос, что произойдет в случае быстрого темпа?
1. часть сообщений окном будет пропущена и ввод со сканера будет не успешен.
2. все сообщения окно получит.

Если да, то:
1. обработает генерацией сообщения?
2. сможет получить по сообщению состояние клавиши через GetKeyState?

какой пункт по твоему мнению не верный?


DiamondShark   (2011-10-25 00:05:00) [43]


> Rouse_ ©   (24.10.11 23:19) [54]

Можно цитату, где Дима Акуличев что-то подобное говорит?
(если ты не различаешь "момент генерации события" и момент обработки Windows-сообщения, то можешь не утруждаться)


DiamondShark   (2011-10-24 23:59:00) [44]


> Rouse_ ©   (24.10.11 23:06) [50]
> Ну тыж не стесняйся - код приводи демонстрирующий невалидность
> работы данного кода со сканером, что ты как первокурсница
> ?А там и поглядим у кого фантазии поболе будет.

Тролишь?

В твоём обработчике GetKeyState всегдасообщит, что клавиша нажата, хотя в случае очень быстрого темпа аппаратных событий "клавиша" может быть давно отпущена.
Для того, чтобы имитироватьситуацию, когда соотношение темпа выборки сообщений и темпа аппаратных событий отличается от типичного отношения при обычном человеческом вводе, я тебе предложил вариант с задержкой.
Ты предпочёл постебаться, а не подумать. Ну, свобода выбора, фигли, святое. Только не обижайся потом, что тебя перестают всерьёз воспринимать, когда ты начинаешь дурочку валять.


> А эт батенька все из-за того, что кто-то леницо читать мануалы
> от МС по юзабилити, отсюда и рождаются всякого рода нестандартные
> подходы к построению интерфейса, и неликвидные задачи плана
> "надо решить как в одно окно будет литься куча данных я
> мы их должны расфасовывать по смыслу"

Я не понял, что из-за чего?
Ты сочиняешь нелогичные байки, из-за того, что кто-то чего-то не читает?
*facepalm.jpg*

Что же до мануалов...
Ты рабочее место кассира видел? Ну, в супермаркете-то хоть был?
Дай ссылку на мануал, в котором расписано юзабилити рабочего места кассира, к которому подключены клавиатура, два сканера (стационарный и ручной) и ридер каких-нибудь карточек, сблокированный с клавиатурой и гонящий данные по тому же интерфейсу.
Я тебе натуральное спасибо скажу. Я уже десятка полтора таких штук написал, на разных платформах, включая ДОС и такую экзотическую штуку, как залитую в компаунд коробочку 10х15х5 см, из которой кроме шести КОМ-портов и Эзернета ничего не торчало, зато внутри была ВинЦЕ. Вдруг я в этой жизни что-то упустил.


sniknik   (2011-10-24 23:39:00) [45]

> Какой сканер есть в наличии с тем и работаем :)
цена вопроса 50-100$ поменять. (у нас было проще, мы их поставляли, и что кому давать решалось административно... после того как выяснили что программно это практически не решается)


Laguna   (2011-10-24 23:38:00) [46]

Я ничего не имею против вашего предложение по поводу одного Edit-а. Просто говорю раньше был такой вариант, возможно нужно пересмотреть и действительно перевести все на один Edit.


sniknik   (2011-10-24 23:36:00) [47]

> А зачем вообще все это? Разве не пофиг, откуда в Edit'е взялся штрих-код?
не особо удобно когда нужно смотреть где ввод... вот у нас было, "ручной" в поля а сканером где ни попадя вводи и оно инициирует добавление товара в накладную.
т.е. не нужно из пролистывания/сумирования/т.д. что бы ни делали в накладной, где бы ввод не находился, просто провел сканером и товар добавлен и ожидание ввода количества стоит.

без разделения так не получится, у нас был префикс/постфикс при сканерах в разрыв, но это еще для DOS-а, в винде с таким подходом проблемы, и с COM портом в винде.


Rouse_   (2011-10-24 23:35:00) [48]


> Игорь Шевченко ©   (24.10.11 23:29) [56]
> Узнать о состоянии клавиши в момент выборки сообщения из
> очереди в общем случае невозможно. В этом ничего странного нет.

Дык на этом собственно затык и произошел...


Laguna   (2011-10-24 23:33:00) [49]


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

Так тут выбирать не приходится. Какой сканер есть в наличии с тем и работаем :)

Еще раз про два едита. "Edit для сканера" был придуман, чтобы ввод проходил как бы в фоновом режиме, т.к. ручного вмешательства не будет. И пользователю особо заморачиваться не приходится. Сканируй данные и все. Как говорится что есть, то и считали.


Игорь Шевченко   (2011-10-24 23:29:00) [50]


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


Узнать о состоянии клавиши в момент выборки сообщения из очереди в общем случае невозможно. В этом ничего странного нет.


Юрий Зотов   (2011-10-24 23:27:00) [51]


> Rouse_ ©   (24.10.11 23:19) [54]

Да я не о вас, я о сабже. На фиг надо вообще что-то там различать - не понимаю. Есть Edit (один!), в нем есть штрих-код - и разве не пофиг, откуда он там взялся?


Rouse_   (2011-10-24 23:19:00) [52]


> Юрий Зотов ©   (24.10.11 23:17) [53]
>
> А зачем вообще все это? Разве не пофиг, откуда в Edit'е
> взялся штрих-код?

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


Юрий Зотов   (2011-10-24 23:17:00) [53]

А зачем вообще все это? Разве не пофиг, откуда в Edit'е взялся штрих-код?


Медвежонок Пятачок   (2011-10-24 23:16:00) [54]

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


Laguna   (2011-10-24 23:14:00) [55]


>  и неликвидные задачи плана "надо решить как в одно окно
> будет литься куча данных я мы их должны расфасовывать по
> смыслу"

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


Rouse_   (2011-10-24 23:06:00) [56]


> DiamondShark ©   (24.10.11 23:00) [49]
>
>
> > Rouse_ ©   (24.10.11 22:44) [39]
>
> Ты опять слушаешь свои фантазии, а не то, что я говорю.
> Весь АПИ будет работать как часики. Не будет работать твой
> подход, потому что ты не понимаешь, как работает тот самый
> АПИ, который ты упоминаешь всуе.

Ну тыж не стесняйся - код приводи демонстрирующий невалидность работы данного кода со сканером, что ты как первокурсница ?
А там и поглядим у кого фантазии поболе будет.


> DiamondShark ©   (24.10.11 23:00) [49]
> Если вы смогли блокировать ввод с клавиатуры, но принимали
> ввод сканера, значит вам удалось разрешить проблему различения
> ввода с клавиатуры и со сканера.
> Но диалог вы создавали для того чтобы НЕ РЕШАТЬ (или потому
> что не СМОГЛИ решить) проблему различения ввода с клавиатуры
> и со сканера.

А эт батенька все из-за того, что кто-то леницо читать мануалы от МС по юзабилити, отсюда и рождаются всякого рода нестандартные подходы к построению интерфейса, и неликвидные задачи плана "надо решить как в одно окно будет литься куча данных я мы их должны расфасовывать по смыслу"


Rouse_   (2011-10-24 23:00:00) [57]

Удалено модератором
Примечание: Ну вот даже так нельзя...


DiamondShark   (2011-10-24 23:00:00) [58]


> Rouse_ ©   (24.10.11 22:44) [39]

Ты опять слушаешь свои фантазии, а не то, что я говорю.
Весь АПИ будет работать как часики. Не будет работать твой подход, потому что ты не понимаешь, как работает тот самый АПИ, который ты упоминаешь всуе.


> Rouse_ ©   (24.10.11 22:47) [43]

Дык, формальная логика, класс второй, третья четверть:

> диалог с надписью что-то типа: "ожидаем ввода сканера",
> в котором блокировался ввод с клавиатуры за исключением Esc.

Если вы смогли блокировать ввод с клавиатуры, но принимали ввод сканера, значит вам удалось разрешить проблему различения ввода с клавиатуры и со сканера.
Но диалог вы создавали для того чтобы НЕ РЕШАТЬ (или потому что не СМОГЛИ решить) проблему различения ввода с клавиатуры и со сканера.

Твоя байка содержит внутреннее противоречие. Рыбаки и то лучше сочиняют.


Rouse_   (2011-10-24 22:59:00) [59]


> Laguna ©   (24.10.11 22:54) [45]
>
> В предложенном варианте что подразумевается под диалогом?
>

Первый


Anatoly Podgoretsky   (2011-10-24 22:57:00) [60]

> Rouse_  (24.10.2011 22:49:44)  [44]

А зачем разбирать, мол он первый начал, не в песочнице, бить своих и чужих


Страницы:   1 2 3 4 5 6

Наверх

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