![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Woody Woodpecker |
|
|||
|
Unregistered |
Необходимо следующее: если на клаве что-либо нажато, то ничего не делаем, если не нажата ни одна клавиша, то выполняем определнные действия. Мне надо, чтоб работало в любом окне моей проги. Идей никаких. Знаю, есть функция GetKeyboardState, но как её юзать - выше моего разума. Может хоть кто-нибудь подскажет что мне делать или хотя бы как юзать GetKeyboardState???
|
|||
|
||||
| _hunter |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
GetKeyboardState возвращает массив, описывающий состояние каждой клавиши
( типа если клавиша нажата -- старший бит 1, иначе ненажата ) еще есть CAPS LOCK:
соответственно: пробегаеш по массиву из 256-ти элементов и если хоть один не ноль -- ничего не делаеш иначе выполняем определнные действия если остались вопросы -- пиши -------------------- Tempora mutantur, et nos mutamur in illis... |
||||
|
|||||
| decoder |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 204 Регистрация: 18.5.2004 Где: Харьков(хохол, к сожалению) Репутация: нет Всего: -1 |
GetKeyboardState возвращает в параметр состояние всех клавиш (нажата/ненажата). Параметр типа TKeyboardState - массив из кучи элементов типа байт. Попробуй проверять получаемый результат - все нули: ничё не нажато... (тока там ИМХО всё хитро устроенно и такой ситуации получиться не может - читай инфу)
Я использую GetKeyboardState тока для изменения CapsLock, NumLock, ScrollLock: var keys: TKeyboardState; begin GetKeyboardState(keys); keys[20] := keys[20] xor 1; keys[144] := keys[144] xor 1; keys[145] := keys[145] xor 1; SetKeyboardState(keys); end; , где 20, 144, 145 - коды виртуальных клавиш CapsLock, NumLock, ScrollLock... --------------------
Молчать, я вас спрашиваю! |
|||
|
||||
| Woody Woodpecker |
|
|||
|
Unregistered |
Это-то я понял. Только какого типа массив создавать? Пробовал byte, integer, даже string - на все пишет: Types of actual and formal var parameters must be identical. Что это значит и как исправить я так и не понял. Заранее спасибо.
|
|||
|
||||
| decoder |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 204 Регистрация: 18.5.2004 Где: Харьков(хохол, к сожалению) Репутация: нет Всего: -1 |
слушай хантера, меня не слушай
--------------------
Молчать, я вас спрашиваю! |
|||
|
||||
| Woody Woodpecker |
|
|||
|
Unregistered |
Ооп-с сорри. пока я печатал мне уже ответили. Спасиба, очень помогли.
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
Woody Woodpecker
покажи кусок кода -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Показывать нечего
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
я имел в виду тот, на котором пишет
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Woody Woodpecker |
|
|||
|
Unregistered |
Уже не пишет
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |