Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> непонятная программа, помогите плиз  
:(
    Опции темы
Vadimn
  Дата 6.1.2011, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.7.2009

Репутация: нет
Всего: нет



Здравствуйте, помогите пожалуйста дописать пару строк. smile 
Добавил модуль, код модуля:

 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 раза, при увеличении интервала у таймера программа пропускает номера. smile 

Дописал пару строк: 
 If Label2.Caption <> i Then
  Text2.Text = Text2.Text & Label1.Caption
  Label2.Caption = i
  End If 

программа перестала писать номера по 2-3 раза но пропускает номер при повторном нажатии буквы. smile 

Помогите пожалуйста, программа должна писать в поле Text2 при одном нажатии буквы один номер и при повторном нажатии тойже буквы повторно прописать этотженомер. smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0877 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.