Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с клавой (Delphi, ессно), HEEEEELPPP!!!!!!!!! 
:(
    Опции темы
Woody Woodpecker
Дата 11.8.2004, 18:39 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Необходимо следующее: если на клаве что-либо нажато, то ничего не делаем, если не нажата ни одна клавиша, то выполняем определнные действия. Мне надо, чтоб работало в любом окне моей проги. Идей никаких. Знаю, есть функция GetKeyboardState, но как её юзать - выше моего разума. Может хоть кто-нибудь подскажет что мне делать или хотя бы как юзать GetKeyboardState???
  Вверх
_hunter
Дата 11.8.2004, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



GetKeyboardState возвращает массив, описывающий состояние каждой клавиши
Цитата
If the high-order bit is 1, the key is down; otherwise, it is up.

( типа если клавиша нажата -- старший бит 1, иначе ненажата )
еще есть CAPS LOCK:
Цитата
If the key is a toggle key, for example CAPS LOCK, then the low-order bit is 1 when the key is toggled and is 0 if the key is untoggled.


соответственно: пробегаеш по массиву из 256-ти элементов и если хоть один не ноль -- ничего не делаеш иначе выполняем определнные действия

если остались вопросы -- пиши


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
decoder
Дата 11.8.2004, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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...
--------------------
Молчать, я вас спрашиваю!
PM MAIL   Вверх
Woody Woodpecker
Дата 11.8.2004, 19:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Это-то я понял. Только какого типа массив создавать? Пробовал byte, integer, даже string - на все пишет: Types of actual and formal var parameters must be identical. Что это значит и как исправить я так и не понял. Заранее спасибо.
  Вверх
decoder
Дата 11.8.2004, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 18.5.2004
Где: Харьков(хохол, к сожалению)

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



слушай хантера, меня не слушай withstupid.gif
--------------------
Молчать, я вас спрашиваю!
PM MAIL   Вверх
Woody Woodpecker
Дата 11.8.2004, 19:11 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ооп-с сорри. пока я печатал мне уже ответили. Спасиба, очень помогли.
  Вверх
_hunter
Дата 11.8.2004, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



Woody Woodpecker
покажи кусок кода


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Guest
Дата 11.8.2004, 19:16 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Показывать нечего smile.gif процедура пустая, стоит в OnTimer Timer'a
  Вверх
_hunter
Дата 11.8.2004, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



я имел в виду тот, на котором пишет
Цитата
Types of actual and formal var parameters must be identical.



--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Woody Woodpecker
Дата 11.8.2004, 19:18 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Уже не пишет smile.gif. Я создавал массив типа byte, а надо было переменную типа TKeyboardState.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




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


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

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