Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2009, 16:06   #1
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию Как проверить нажата ли любая клавиша (в том числе и на мыши)?

Как проверить нажата ли любая клавиша (в том числе и на мыши)?
Вадим Буренков вне форума Ответить с цитированием
Старый 06.07.2009, 16:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

GetKeyState поиском по форуму. Примеры есть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.07.2009, 18:35   #3
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Как я нашел в одной из справок по функциям
Цитата:
GetKeyState опpеделяет, каково состояние виpтуальной клавиши: поднята, нажата или пеpеключается.
Мне же нужно определить нажата ли любая из клавиш. Например в паскале насколько я помню была функция keypressed. Можно было проверить так:
Код:
if keypressed then ...
Ведь не перебирать состояние всех клавиш с помощью GetKeyState.
Или же я что-то не понимаю?
Вадим Буренков вне форума Ответить с цитированием
Старый 06.07.2009, 19:03   #4
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от Вадим Буренков Посмотреть сообщение
Как проверить нажата ли любая клавиша (в том числе и на мыши)?
Тебе надо проверить в твоей программе или во всей системе, т.е. прога должна ловить хуки?
psycho-coder вне форума Ответить с цитированием
Старый 06.07.2009, 19:05   #5
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

В моей программе.
Вадим Буренков вне форума Ответить с цитированием
Старый 06.07.2009, 19:44   #6
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

С мышью надо повозиться, а вот с формой проще. Поставь свойство KeyPreview формы в true. Потом создаешь метод onKeyPress или onKeyDown и там делешь что надо.
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Self.KeyPreview := true;
  i := 0;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Inc(i);
  Caption := IntToStr(i);
end;
psycho-coder вне форума Ответить с цитированием
Старый 06.07.2009, 19:48   #7
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
begin
  if Msg.message = WM_KEYDOWN then
    begin
      if Msg.wParam in [{ваша клавиша}] then {ваши действия};
      
    end;
end;
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 06.07.2009, 23:46   #8
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

была такая тема, хотя название у неё не "говорящее":

http://programmersforum.ru/showthread.php?t=52392

тоже как вариант.
BaronTreep вне форума Ответить с цитированием
Старый 07.07.2009, 15:43   #9
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

Я думаю, это для игр может пригодится. Угадал? ))
BaronTreep вне форума Ответить с цитированием
Старый 07.07.2009, 15:58   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Из всего вышеобсмакованного следует логичный вопрос автору: Ловить нажатия только в своем приложении или где угодно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как Как проверить кнопки мыши без OnMouseDown? Вадим Буренков Общие вопросы Delphi 3 22.05.2009 15:08
Нажата ли клавиша... Xcopy Паскаль, Turbo Pascal, PascalABC.NET 14 26.03.2009 11:14
Как с помощье ReadKey определить что нажата клавиша "Стрелка" Викдон Паскаль, Turbo Pascal, PascalABC.NET 5 05.02.2009 00:47
Как запретить/разрешить ввод от клавиатуры любых символов (в том числе и юникодных)? SkAndrew Общие вопросы Delphi 8 15.08.2008 15:30
нажата ли кнопка мыши? VDLab Общие вопросы Delphi 2 15.11.2006 00:59