Как отловиь системные клавиши в Lazarus'е

Вопросы программирования и использования среды Lazarus.

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

Как отловиь системные клавиши в Lazarus'е

Сообщение The_Eternal_Student » 11.04.2009 11:24:31

Для удобства в моей программе хотел использовать клавиши "влево", "вправо" и т.д. Но, к сожалению, событие OnKeyPress не отлавливают данные клавиши. Проверял таким способом:
Код: Выделить всё
procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
  ShowMessage(IntToStr(ord(Key)));
end;

Нашел как это реализовать на Delphi. Вот код:
Код: Выделить всё
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_UP then
  Dec(PosY, 5);
  if Key = VK_DOWN then
  Inc(PosY, 5);
  if Key = VK_LEFT then
  Dec(PosX, 5);
  if Key = VK_RIGHT then
  Inc(PosX ,5);
  OnPaint(Sender);
end;

Но он не рабочей в Lazarus'e. Есть ли возможность, наподобие в Delphi, использовать эти клавиши("влево" и т.п.)?
P.S. Мне нужно, чтобы программа работала в Window's
The_Eternal_Student
незнакомец
 
Сообщения: 4
Зарегистрирован: 11.04.2009 11:02:54
Откуда: Россия, Город Трёх Шурупов

Re: Как отловиь системные клавиши в Lazarus'е

Сообщение Mr.Smart » 11.04.2009 11:42:57

В чём проблемма?
подключи модуль Windows там определены все константы вида VK_... и многие другие.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Как отловиь системные клавиши в Lazarus'е

Сообщение The_Eternal_Student » 11.04.2009 11:51:14

Спасибо, всё заработала :D
The_Eternal_Student
незнакомец
 
Сообщения: 4
Зарегистрирован: 11.04.2009 11:02:54
Откуда: Россия, Город Трёх Шурупов

Re: Как отловиь системные клавиши в Lazarus'е

Сообщение Павел Ишенин » 11.04.2009 11:51:56

Не надо никакого модуля Windows. Добавить LCLType в модуль - там есть VK_UP и прочие.
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Re: Как отловиь системные клавиши в Lazarus'е

Сообщение Mr.Smart » 11.04.2009 11:56:35

Павел Ишенин писал(а):Не надо никакого модуля Windows. Добавить LCLType в модуль - там есть VK_UP и прочие.

Если ПО пишется чисто под винду почему бы и недобавить :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Как отловиь системные клавиши в Lazarus'е

Сообщение Attid » 11.04.2009 13:05:44

чтоб через неделю не отвечать на вопрос как это сделать в линуксе

Добавлено спустя 1 минуту 23 секунды:
и вообще за такой вопрос
The_Eternal_Student писал(а):Но он не рабочей в Lazarus'e.


бить надо. где текст ошибки ?
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: Как отловиь системные клавиши в Lazarus'е

Сообщение The_Eternal_Student » 11.04.2009 14:31:48

Чтобы не били :) :
Lazarus писал(а): Error: Identifier not found "VK_UP"
The_Eternal_Student
незнакомец
 
Сообщения: 4
Зарегистрирован: 11.04.2009 11:02:54
Откуда: Россия, Город Трёх Шурупов

Re: Как отловиь системные клавиши в Lazarus'е

Сообщение Павел Ишенин » 11.04.2009 15:31:10

Ну так с LCLType в uses такой ошибки нет?
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Re: Как отловиь системные клавиши в Lazarus'е

Сообщение Vadim » 11.04.2009 18:27:52

А чтобы не добавлять никаких модулей, можно добавить в прогу четыре константы:
Код: Выделить всё
  VK_LEFT = 37;
  VK_UP = 38;
  VK_RIGHT = 39;
  VK_DOWN = 40;

или вообще использовать цифры. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Как отловиь системные клавиши в Lazarus'е

Сообщение The_Eternal_Student » 11.04.2009 18:39:57

Да и с модулем LCLType программа прекрасно работает, а вот использовать константы (или цифры) не имеет смысла, так как забивать такими вещами голову не стоит. Да? :wink:

Reply: Вам виднее :) (так как не программист, я вас не пойму, и тем более в деньги не уперается)
Последний раз редактировалось The_Eternal_Student 11.04.2009 19:18:12, всего редактировалось 1 раз.
The_Eternal_Student
незнакомец
 
Сообщения: 4
Зарегистрирован: 11.04.2009 11:02:54
Откуда: Россия, Город Трёх Шурупов

Re: Как отловиь системные клавиши в Lazarus'е

Сообщение Vadim » 11.04.2009 18:45:15

The_Eternal_Student писал(а):Да?

Нет. :) Вы ведь должны знать или названия констант или их значения, чтобы выполнить поставленную задачу. Если не знать в каком направлении искать, деньги быстро кончутся... :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

Рейтинг@Mail.ru