![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ввод в TЕdit руками или сканером штрихкода. [D7, XP]
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]
А зачем разбирать, мол он первый начал, не в песочнице, бить своих и чужих