![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отловить нажатия на стрелки, не блокируя их? [D7, XP]
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; у формы?
Конечно.