![]() |
|
Модераторы: mihanik |
![]()
|
|
| Vadimn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 9.7.2009 Репутация: нет Всего: нет |
Здравствуйте, помогите пожалуйста дописать пару строк.
Добавил модуль, код модуля: Option Explicit Private Declare Function GetKeyState _ Lib "user32" (ByVal vKey As Long) As Integer Public KeysWasPressed(1 To 255) As Boolean Public KeysNowPressed(1 To 255) As Boolean Dim Buff(1 To 255) As Boolean Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Public Sub InitKeys() RefreshKeys Dim i As Integer For i = 1 To 255 KeysWasPressed(i) = False KeysNowPressed(i) = False Next End Sub Public Sub RefreshKeys() Dim s As String, n As Integer, s2 As Boolean, i As Integer For i = 1 To 255 n = GetKeyState(i) s2 = False s = Bin(n) If Len(s) > 7 Then s = Bin(Abs(n) - 1): s2 = True If Len(s) < 6 And Len(s) > 0 Then s = "": s2 = True KeysWasPressed(i) = Buff(i) <> s2 KeysNowPressed(i) = s <> "" Buff(i) = s2 Next End Sub Private Function Bin(ByVal Arg As Integer) As String Dim s As String s = "" While Arg <> 0 s = Mid(Str(Arg Mod 2), 2) + s Arg = Arg \ 2 Wend Bin = s End Function На форму поместил Timer1 (интервал 1 True ) Text2 Label1 Label2 Код формы: Private Sub Timer1_Timer() s_KeyPress.RefreshKeys i = 1 Do If s_KeyPress.KeysNowPressed(i) = True Then Label1.Caption = i '''If Label2.Caption <> i Then Text2.Text = Text2.Text & Label1.Caption '''Label2.Caption = i '''End If Exit Do End If i = Val(i) + Val(1) Loop Until i = 255 End Sub Суть программы: при нажатии букв на клавиатуре в поте Text2 программа записывает номер буквы. Но при нажатии одной буквы программа записывает номер 2-3 раза, при увеличении интервала у таймера программа пропускает номера. Дописал пару строк: If Label2.Caption <> i Then Text2.Text = Text2.Text & Label1.Caption Label2.Caption = i End If программа перестала писать номера по 2-3 раза но пропускает номер при повторном нажатии буквы. Помогите пожалуйста, программа должна писать в поле Text2 при одном нажатии буквы один номер и при повторном нажатии тойже буквы повторно прописать этотженомер. |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |