Страница: 1 | 2 |
Вопрос: Вызов формы клавишей
Добавлено: 16.07.06 15:45
Автор вопроса: Новиков Вячеслав | Web-сайт:
Здравствуйте!
Мне требуется помощь. Я программирую на VB5. Я хотел бы узнать, как сделать так, чтобы при нажатии одной кнопки на клавиатуре (например, A) открывалась одна форма, а при нажатии другой клавиши (например, S) - другая форма и т.д. Всего должно быть более 30 форм, которые должны вызываться нажатием клавиши. Заранее благодарен за ответ!
С уважением,
Новиков Вячеслав
E-mail: info@auta.ru
Ответы
Всего ответов: 18
Номер ответа: 1
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #1
Добавлено: 16.07.06 15:58
Что то типа этого:
Private Declare Function GetAsyncKeyState _
Lib "user32" (ByVal vKey As Long) As Integer
Const VK_RETURN = &HD
Private Sub Form_Load()
Timer1.Interval = 100
Me.Visible = False
End Sub
Private Sub Timer1_Timer()
If GetAsyncKeyState(VK_RETURN) Then
Me.Visible = True
End If
End Sub
Номер ответа: 2
Автор ответа:
Новиков Вячеслав
Вопросов: 1
Ответов: 3
Web-сайт:
Профиль | | #2
Добавлено: 16.07.06 16:13
Здравствуйте, Root!
Спасибо за ответ! Но предоставленный Вами код не совсем то, что мне надо. Мне требуется, чтобы при нажатии на одну клавишу (например, A) открывалась Form1, при нажатии другой клавиши - Form2, при нажатии третьей кнопки - Form3, при нажатии еще какой-нибудь клавиши - Form4 и т.д. Благодарен за ответ!
Номер ответа: 3
Автор ответа:
ENIX
ICQ: 238819245
Вопросов: 9
Ответов: 76
Профиль | | #3
Добавлено: 16.07.06 18:08
Option Explicit
Private Declare Function GetAsyncKeyState _
Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Timer1_Timer()
Selct Case GetKeyB
Case Is = &H41: Timer1.Enabled=False: .....
Case Is =
End Select
'A-&H41
'Z-&H5A
End Sub
Function GetKeyB() as Integer
Dim Num&
For Num = 32 To 128
If GetAsyncKeyState(Num) <> 0 Then
GetKeyB = Num
Exit For
End If
Next
End Function
Типа того...не уверен..
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 16.07.06 19:34
шо вы GetAsyncKeyState пристали? Коль формы дёргаться постоянно будет - загрузить все сразу, и .Hide их. Далее на каждой форме сделать меню, тоже ео vivible=false, а в меню можно назнать "горячую кнопку"
Номер ответа: 5
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #5
Добавлено: 16.07.06 20:22
мона ещё круче — юзать (Un)RegisterHotKey, а потом ловить WM_HOTKEY)))
Номер ответа: 6
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #6
Добавлено: 16.07.06 20:23
а вот у меня возник вопрос — для чего используются более 30 форм? что за варварство? Аффтар, скажите, plz, цель всего этого.
Номер ответа: 7
Автор ответа:
Новиков Вячеслав
Вопросов: 1
Ответов: 3
Web-сайт:
Профиль | | #7
Добавлено: 17.07.06 00:55
Спасибо за ответы! Если есть еще варианты, то, пожалуйста, пришлите их. Спасибо!
Номер ответа: 8
Автор ответа:
LeX
ICQ: 301424893
Вопросов: 28
Ответов: 277
Web-сайт:
Профиль | | #8
Добавлено: 17.07.06 10:28
If KeyCode = Asc("C" Then Form2.Show
End Sub
Что-то типа этого. только вместо "С" ставишь ту клавишу, которую тебе надо.
Номер ответа: 9
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #9
Добавлено: 17.07.06 17:46
Насчет Form_KeyDown - этот код будет работать только когда прога активна.
Номер ответа: 10
Автор ответа:
LeX
ICQ: 301424893
Вопросов: 28
Ответов: 277
Web-сайт:
Профиль | | #10
Добавлено: 17.07.06 17:57
Понятно. Представь себе такую ситуацию. Человек на сайте вводит свои регистрационные данные(к примеру) и вдруг при нажатии на букву "А" открывается посторонняя форма, совсем не нужная в данный момент. Так что это оптимальный вариант.
Номер ответа: 11
Автор ответа:
ENIX
ICQ: 238819245
Вопросов: 9
Ответов: 76
Профиль | | #11
Добавлено: 17.07.06 18:14
чё Будет весело)))
Это пусть решает автор. А вообще 30 - это убиться можно!
Номер ответа: 12
Автор ответа:
LeX
ICQ: 301424893
Вопросов: 28
Ответов: 277
Web-сайт:
Профиль | | #12
Добавлено: 17.07.06 18:20
Это еще лучше Главное - не меньше :D
Номер ответа: 13
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #13
Добавлено: 17.07.06 19:03
Я учёт товара на складе писал, у меня больше 20 было... все нужные...
Номер ответа: 14
Автор ответа:
LeX
ICQ: 301424893
Вопросов: 28
Ответов: 277
Web-сайт:
Профиль | | #14
Добавлено: 17.07.06 19:10
Бывает конечно и такое, но редко... В играх в основном.
Номер ответа: 15
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #15
Добавлено: 17.07.06 19:35
так вот я и спрашиваю для чего стока форм. Может аффтар чего-то намудрил, а мож действительно все нужные. По крайней мере мы этого не узнаем, пока не скажет аффтар.