Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как отловить нажатия на стрелки, не блокируя их? [D7, XP]


Страницы:   1 2 3

Alex80 ©   (2014-02-03 07:02:00) 

Кидаю на форму TActionList, создаю в нём экшены на нажатия стрелок, чтобы их отлавливать. Создают событие OnExecute. Всё нормально отлавливаются стрелки. ... Но в других контролах стрелки перестали работать. Как починить?


Alex80   (2014-02-09 05:52:00) [1]

Удалено модератором
Примечание: обсуждение модерирования


Inovet   (2014-02-08 09:54:00) [2]

> [39] Alex80   (08.02.14 03:04)
> Удивительно как много можно написать никому не нужного текста.

А ты всё ждёшь готовый код? Ну может и сжалится кто, но непонятно что там тебе надо. А так тебе дают источники информации, где сказано как и чего, но многа букафф незнакомых.


Inovet   (2014-02-08 09:50:00) [3]

> [38] Германн ©   (08.02.14 02:27)
> > Хочется пожелать Пете освоить русский язык.
>
> Желай сколько тебе влезет.

Не, не так. Надо: Желай другим того, что пожелал бы себе. Так что — учить англицкий.


Alex80   (2014-02-08 03:40:00) [4]

Удалено модератором


Германн   (2014-02-08 03:30:00) [5]


> Alex80   (08.02.14 03:04) [39]
>
>
> > Германн ©   (08.02.14 02:27) [38]
>
> Удивительно как много можно написать никому не нужного текста.
>
>  

Угу. Только заметь. Не я это начал, а ты.


Alex80   (2014-02-08 03:04:00) [6]


> Германн ©   (08.02.14 02:27) [38]

Удивительно как много можно написать никому не нужного текста.


Германн   (2014-02-08 02:27:00) [7]


> Alex80   (07.02.14 08:51) [31]
>
>
> > MBo ©   (06.02.14 22:22) [30]
> > Дядя Петя Белов тут пару слов набросал про отлов клавиш:
>
> > http://edn.embarcadero.com/article/38447
>
> Хочется пожелать Пете освоить русский язык.

Желай сколько тебе влезет.

> Чего нам оттуда может пригодиться?

Всё. От начала и до конца. Если научишься читать то, что пишут специалисты высшего класса. В т.ч. и на английском. И даже в первую очередь на английском.

> Alex80   (07.02.14 23:57) [37]
>
> Кстати, а зачем вообще придумали разделение на KeyPress
> и KeyDown? Для чего?

Ооо. В таком случае надо начинать с чтения букварей. Причём не только по Дельфи и по Windows. Но и вообще по компьютерам.


Alex80   (2014-02-07 23:57:00) [8]

Кстати, а зачем вообще придумали разделение на KeyPress и KeyDown? Для чего?


sniknik   (2014-02-07 10:36:00) [9]

p.s. да и у него все работает... работает именно так, как положено используемым им компонентам, но не так как ему хочется.


sniknik   (2014-02-07 10:34:00) [10]

> [29] все работает...
у тебя да(и у всех да), а ты "сломай" как топикастер, после будешь говорить. ;)


brother   (2014-02-07 10:29:00) [11]

[29] все работает...


Alex80   (2014-02-07 09:53:00) [12]


> а ты не принаглел уже?
> иди прочитай, там поговорим...

А по поводу [29] разве уже поговорили?
Почему не работает?


brother   (2014-02-07 09:08:00) [13]

> Чего нам оттуда может пригодиться?

а ты не принаглел уже?
иди прочитай, там поговорим...


Alex80   (2014-02-07 08:51:00) [14]


> MBo ©   (06.02.14 22:22) [30]
> Дядя Петя Белов тут пару слов набросал про отлов клавиш:
> http://edn.embarcadero.com/article/38447

Хочется пожелать Пете освоить русский язык.

Чего нам оттуда может пригодиться?


MBo   (2014-02-06 22:22:00) [15]

Дядя Петя Белов тут пару слов набросал про отлов клавиш:
http://edn.embarcadero.com/article/38447

Можно также посмотреть обсуждения, ссылающиеся на название этой статьи


Alex80   (2014-02-06 21:32:00) [16]

Вот так советуют отлавливать нажатия на клавиши.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm1 = class(TForm)
 private

 public
   procedure WMKeyDown(var Message : TWMKeyDown); message WM_KEYDOWN;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMKeyDown(var Message: TWMKeyDown);
begin
 if message.CharCode = VK_LEFT then
   form1.Left := form1.Left- 2;
 if message.CharCode = VK_RIGHT then
   form1.Left := form1.Left+ 2;
 if message.CharCode = VK_UP then
   form1.top := form1.top- 2;
 if message.CharCode = VK_DOWN then
   form1.top := form1.top+ 2;
end;

end.


Вставил эту процедуру в свою TForm1, но не проходят нажатия. Просто не вызывается функция WMKeyDown . Почему?

Похоже не меня одного достала эта проблема.


Inovet   (2014-02-06 17:55:00) [17]

Я вот не зная ничего о TGLSceneViewer, предположим — беру и назначаю обработку неких клавиш, которые должны использоваться в этом самом компоненте на этой самой форме. Какой в этом смысл? Нажимаю клавиши курсора — в одном месте формы происходит одно, в другом другое. Что-то в этом неправильно.


sniknik   (2014-02-06 13:56:00) [18]

>> KeyPreview:= True; у формы?
> Конечно.
это не уточняющий вопрос был, это ответ. альтернатива т.сказать.

> А что их выключает?
> TActionList, создаю в нём экшены на нажатия стрелок
акции по сути централизованы, сделаны чтобы в них писать код, а в остальных местах и просто указывать.

> А как переписать на низком уровне?
ну, найти место/событие/сообщение которое перехватывают акции, и "встроится" до них, или вместо них, написать свою систему сообщений в конце концов. вариантов много... и все они глупые (вместо изучения и использования системы пытаться ее менять не зная всегда глупо).


Alex80   (2014-02-06 12:32:00) [19]

Ещё один не работающий код.

http://www.pascalgamedevelopment.com/showthread.php?3712-%28OnKeyPress%29-Is-arrow-key-pressed


> sniknik ©   (06.02.14 08:02) [23]
>
> > Ну, так как их включить-то?
> убрать то, что их "выключает"... разве не очевидно? или
> переписывать на низком уровне. или обходится тем, что все
> таки работает, не смотря на твои заявления.

А что их выключает? А как переписать на низком уровне? Какой код?


Alex80   (2014-02-06 12:19:00) [20]


> brother ©   (06.02.14 08:56) [24]
>
> KeyPreview:= True; у формы?

Конечно.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо