![]() |
![]() |
![]() |
|
Как обработать нажатие кнопки на клавиатуре в форме | ☑ | ||
---|---|---|---|---|
0
MNS_Ротерта
16.08.10
✎
09:54
|
Конфа 8.1. Есть произвольная форма. Как можно обработать нажатие кнопок на клавиатуре при открытой форме независимо от того какой элемент формы в фокусе, чтобы знать какая именно клавиша была нажата.
Есть вариант создать командную панель и в источнике действий оставить ВсеИсточники. Добавить туда кучу кнопок, что есть на клавиатуре и навесить на них одну и ту-же процедуру обработки нажатия. Но здесь возникает проблема что обработать можно только латинские буковки даже если раскладка русская. Не понимает 1С 8.1 кирилицу :( Как еще можно обыграть данную задачу? |
|||
1
AlecoZAV
16.08.10
✎
10:05
|
подключай внешний обработчик
|
|||
2
Elena_KR
16.08.10
✎
11:12
|
не вариант
|
|||
3
hhhh
16.08.10
✎
11:28
|
(0) в чем проблема, непонятно. В процедуру КнопкаНажатие ведь передается имя кнопки.
|
|||
4
1C-Nick
16.08.10
✎
11:41
|
(3) имя кнопки клавиатуры?
|
|||
5
1C-Nick
16.08.10
✎
12:33
|
||||
6
hhhh
16.08.10
✎
12:35
|
(4) да. Так как он сам создает эти кнопки на форме. Естественно он присваивает им имена как на клавиатуре.
|
|||
7
1C-Nick
16.08.10
✎
13:26
|
(6) какие кнопки?
Автор хочет чтобы при нажатии любых клавиш (чтобы не путать с элементом управления кнопка) клавиатуры обрабатывать это событие, при этом на форме кнопок (элементов управления) вообще может и не быть. |
|||
8
Rovan
гуру
16.08.10
✎
13:29
|
(0) можно дурацкий вопрос - а зачем ?
|
|||
9
MNS_Ротерта
16.08.10
✎
13:40
|
(7) именно. на форму может быть введена часть кнопок но совсем не обязательно что вся клавиатура.
(8) чтобы как то воспроизвести интерактивный вариант ввода без переключений в поля ввода. Раньше были только цифры а щас появилась необходимость и в буковках. Просто на данный момент этот вариант удобен для тупых продавцов и все привыкли по всей РФ. Вариант использования dll перехватчиков конечно неплох, но есть минус что винда везде разная и везде должно работать 100% а права настроены не по единой политике. |
|||
10
MNS_Ротерта
16.08.10
✎
13:43
|
Видимо самый оптимальный вариант создать экранную клавиатуру на весь требуемый набор символов. По крайней мере это 100% 1С без разных шелов и dll. Хотя может я и побаиваюсь использовать те же dll.
|
|||
11
1C-Nick
16.08.10
✎
13:45
|
(9) а постоянно активировать поле ввода не пройдет?
т.е. раз в секунду если поле неактивно, то активировать... |
|||
12
1C-Nick
16.08.10
✎
13:48
|
или быстрее чем раз в секунду...
|
|||
13
MNS_Ротерта
16.08.10
✎
13:53
|
(12) я думал по поводу этого это например если исходить из задачи подключить внешний обработчик. Только как то коряво получиться. Проще тогда просто сказать в инструкции чтоб вводили в жестко в поле и не парились.
|
|||
14
1C-Nick
16.08.10
✎
13:59
|
(13) есть еще вариант (не сказать что самый удачный, но все же) всю форму разработать на ActiveX Microsoft Forms, а в них уже обрабатывать событие и заполнять поле ввода.
|
|||
15
MNS_Ротерта
16.08.10
✎
14:03
|
(14) идея неплохая но как то не знаю даж...
|
|||
16
Elena_KR
16.08.10
✎
14:09
|
я за Поле ввода
|
|||
17
MNS_Ротерта
16.08.10
✎
14:11
|
(16) мне нравиться когда девушки-программисты выражают твердое мнение :)
|
|||
18
Elena_KR
16.08.10
✎
14:13
|
разбаловали пользователей
|
|||
19
Rovan
гуру
16.08.10
✎
14:13
|
(11) а вроде как и не нужно - если других полей ввода там нет
только кнопки, то после нажатия кнопок надо просто снова сделать активным главное поле ввода |
|||
20
1C-Nick
16.08.10
✎
14:25
|
(15) вдруг найдешь более интересно решение - отпишись ;)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |