С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
269 / 14 / 0
Регистрация: 26.02.2014
Сообщений: 142
1

Клавиатура терминала

26.03.2014, 11:00. Показов 1694. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день форумчане. Такой вопросец, как правильно реализовать группу кнопки на форме, которые соответствуют раскладке клавиатуры числе с нуля по девятку? Поподробнее: есть форма, на ней два текстбокса, справа кнопка работы с каждым текстбоксом, тобишь человек вводит с клавиатуры числа в один или другой текстбокс, нажимает кнопку и происходят расчеты в базе экселя. Есть идея реализации тачпада на ЖК мониторе в будующем (создается что-то на подобие небольшого терминала), хочется что бы:

Человек может делать действия или с клавиатуры (полностью все уже реализовано), но на форме добавится функционал из кнопок с числами, нажимая на которые пользователь добавляет число в нужный текстбокс. Не знаю как точно объяснить, типо если активный курсор на верхнем текстбоксе, но нажимая числа с 0 по 9, туда вводится соотвественная комбинация, далее Ентер или нажатия мышью на кнопку и пошло поехало, ну и следовательно для нижнего текстбокса. В теории как организовать для одного текстбокса вроде понятно, а вот как паралельно для двоих с просмотром где стоит активный курсор... Что-то в этом роде в общем.

В будующем соответственно будет реализован тачскрин и надобность в клавиатуре и мыши отпадет и останется данный функционал, в котором пользователь сможет вводить числа нажимая на монитор и там же нажимать на кнопку активации.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2014, 11:00
Ответы с готовыми решениями:

По типу терминала
Ув. форумчане! Есть такая схема: Норм компьютер раздает интернет на другой, гораздо слабее его...

Вызов терминала
Нужно вызвать терминал и выполнить в нём какую-нибудь команду. execl("/bin/bush","ls","-c",NULL);...

Очистка терминала py
Меня волнует вопрос как очистить от мусора консоль PYTHON

Команды терминала
Установил себе на телефон эмулятор телефона, есть там вообще какие-то команды? Надеюсь вопрос...

9
Ушел с CyberForum совсем!
873 / 182 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
26.03.2014, 11:11 2
на днях была тема Виртуальная (экранная) клавиатура в Excel средствами VBA
тачскрин в вба интересно будет посмотреть на реализацию
1
269 / 14 / 0
Регистрация: 26.02.2014
Сообщений: 142
26.03.2014, 11:11  [ТС] 3
Пришел к выводу, что просто вводить числа в текстбокс тоже не просто с ходу)
0
15153 / 6426 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
26.03.2014, 11:13 4
Лучший ответ Сообщение было отмечено Derjzemit как решение

Решение

Как вариант - всем цифровым кнопкам установить свойство TakeFocusOnClick=False, а по клику кнопки SendKeys соотв. символа:
Visual Basic
1
2
3
Private Sub CommandButton1_Click(): SendKeys 1, True: End Sub
Private Sub CommandButton2_Click(): SendKeys 2, True: End Sub
' и т.д.
В каком текстбоксе курсор - туда символ и попадет.
1
269 / 14 / 0
Регистрация: 26.02.2014
Сообщений: 142
26.03.2014, 11:28  [ТС] 5
Да, все оказалось гораздо проще) Спасибо)
0
269 / 14 / 0
Регистрация: 26.02.2014
Сообщений: 142
27.03.2014, 13:43  [ТС] 6
Форма развивается дальше, вопрос, SendKeys, я так пониманию, не поддерживает никакие символьные кнопки, а какой способ поддерживает? Что бы помимо цифр 0-9 поддерживались все буквы а-я, a-z.
0
Ушел с CyberForum совсем!
873 / 182 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
27.03.2014, 14:11 7
http://msdn.microsoft.com/en-u... e.15).aspx в экселе у меня получалось с SendKeys работать
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Test1()
      ActiveCell.Formula = "ANY TEXT"
      Application.Wait (Now() + TimeValue("00:00:01"))
      SendKeys "{F1}", False
End Sub
Sub Test2()
      ActiveCell.Formula = ""
      Application.Wait (Now() + TimeValue("00:00:01"))
      SendKeys "i", False
End Sub
Sub Test3()
      ActiveCell.Formula = "ANY TEXT"
      Application.Wait (Now() + TimeValue("00:00:01"))
      SendKeys "^i", False
End Sub
Добавлено через 1 минуту
насчет русских букв не уверен
1
269 / 14 / 0
Регистрация: 26.02.2014
Сообщений: 142
27.03.2014, 14:34  [ТС] 8
В общем то да, работает. Только вот я понял в чем у меня была проблема, я создал на форме фрейм и запустил туда все кнопки, так вот из под фрейма не работает как надо, а как только создаю кнопку на форме, то уже работает. В чем проблема?
0
15153 / 6426 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
27.03.2014, 16:51 9
Цитата Сообщение от Derjzemit Посмотреть сообщение
я создал на форме фрейм и запустил туда все кнопки, так вот из под фрейма не работает как надо
При нажатии кнопки во фрейме фокус передается фрейму. Соответственно, текстбокс теряет фокус, а символ уходит фрейму. Можете добавить к коду эту процедуру и увидите активацию фрейма:
Visual Basic
1
2
3
Private Sub Frame1_Enter()
MsgBox "Frame1_Enter"
End Sub
Лучше, конечно, отказаться от SendKeys и сделать так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Dim aTB As Object
 
Private Sub CommandButton1_Click(): aTB.Text = aTB.Text & "1": End Sub
Private Sub CommandButton2_Click(): aTB.Text = aTB.Text & "2": End Sub
'и т.д.
 
Private Sub TextBox1_Enter()
Set aTB = TextBox1
End Sub
 
Private Sub TextBox2_Enter()
Set aTB = TextBox2
End Sub
 
Private Sub UserForm_Initialize()
TextBox1.SetFocus
Set aTB = TextBox1
End Sub
1
269 / 14 / 0
Регистрация: 26.02.2014
Сообщений: 142
27.03.2014, 18:09  [ТС] 10
В общем-то SendKeys работает и с кириллицей и с латинницей, выбросил фрейм, сделал просто скрывающиеся кнопки, всем спасибо за советы, понемногу опыт нарабатывается)
0
27.03.2014, 18:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2014, 18:09
Помогаю со студенческими работами здесь

Команды терминала
Как программно на си выполнить команды терминала.... например chmod или ls... Спасибо

Загрузка терминала с LAN
Всем доброго времени суток. Есть 10 машин слабеньких (будем считать что на них нет жёстких и...

VM - кратковременное отключение от терминала
Добрый день. на хостовой машине (Windows server 2016) поднята роль HyperV. подняты 3 виртуальные...

Отвязать gnuplot от терминала
Суть в следующем. Есть массив данных, необходимо построить график по изначальным данным,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru