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. Всё нормально отлавливаются стрелки. ... Но в других контролах стрелки перестали работать. Как починить?


brother   (2014-02-06 08:56:00) [21]

KeyPreview:= True; у формы?


sniknik   (2014-02-06 08:02:00) [22]

> Ну, так как их включить-то?
убрать то, что их "выключает"... разве не очевидно? или переписывать на низком уровне. или обходится тем, что все таки работает, не смотря на твои заявления.


Alex80   (2014-02-06 06:06:00) [23]

Посмотрел, что:

TGLSceneViewer = class(TWinControl)

А у TWinControl есть события OnKeyDown, OnKeyPress, OnKeyUp . Открыл их. Прицепил к ним код.

Но всё равно когда нажимаю на стрелки - OnKeyDown и OnKeyPress не проходит. Ну, так как их включить-то? Мастера?


Alex80   (2014-02-06 06:04:00) [24]

Посмотрел, что:

TGLSceneViewer = class(TWinControl)

А у TWinControl есть события OnKeyDown, OnKeyPress, OnKeyUp . Открыл их. Прицепил к ним код.

Но всё равно когда нажимаю на стрелки - OnKeyDown и OnKeyPress не проходит. Ну, так как их включить-то? Мастера?


Inovet   (2014-02-05 14:55:00) [25]

> [19] Alex80   (05.02.14 13:54)
> Докажите кодом.

Вот так бы сразу и сказал. А то разёл тут философию.


Alex80   (2014-02-05 13:54:00) [26]


> Inovet ©   (05.02.14 11:35) [17]
> > [15] Alex80   (05.02.14 11:07)> «Телепаты в отпуске.»
> ©Для понимания предложенного выше способности к телепатии
> не требуются.

Докажите кодом.


Плохиш   (2014-02-05 12:41:00) [27]


> Alex80   (05.02.14 11:07) [15]
>
>
> > Ты даже не понимаешь ответов, советов.
>
> "Телепаты в отпуске." ©

Так это сугубо твои проблемы.

> Alex80   (04.02.14 08:25) [10]
>
>
> > пусть поставит простой TEdit, в новом проекте
>
> А такие советы вы будете давать создателям Ассассинс Крид.
>

Не знаю кто это-такие, но судя по вопросам их сотрудников, тот ещё детский сад сантехников.


Inovet   (2014-02-05 11:35:00) [28]

> [15] Alex80   (05.02.14 11:07)
> «Телепаты в отпуске.» ©

Для понимания предложенного выше способности к телепатии не требуются.


Alex80   (2014-02-05 11:31:00) [29]


> brother ©   (05.02.14 07:43) [13]
> > Это основной компонент программы.не программы, а игрового
> движка...

Программа не является игровым движком. GLScene используется для отображения 3D-графики.


Alex80   (2014-02-05 11:07:00) [30]


> Ты даже не понимаешь ответов, советов.

"Телепаты в отпуске." ©


Inovet   (2014-02-05 07:44:00) [31]

> [12] Alex80   (05.02.14 07:38)
> GLScene не является «лишним» компонентом.

Ты даже не понимаешь ответов, советов.


brother   (2014-02-05 07:43:00) [32]

> Это основной компонент программы.

не программы, а игрового движка...


Alex80   (2014-02-05 07:38:00) [33]


> осмотреть на другой (лишний, неправильный???, классический)
> компонент

GLScene не является "лишним" компонентом. Это основной компонент программы.


sniknik   (2014-02-04 09:55:00) [34]

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


Alex80   (2014-02-04 08:25:00) [35]


> пусть поставит простой TEdit, в новом проекте

А такие советы вы будете давать создателям Ассассинс Крид.
Пусть вместо нормального решения Теедиты ставят.


sniknik   (2014-02-04 08:16:00) [36]

> Неужели я первый кто с этим д*** сталкиваюсь?
ну, так, редко находятся индивиды желающие "на моторной лодке по красной площади"... большинство понимают, что значит предназначение используемого средства.

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

>ставит GLScene ... то у него нет событий OnKeyPress, OnKeyDown, OnKeyUp.
?
вот прям таки всех перечисленных? пусть поставит простой TEdit, в новом проекте, и проверит еще раз все эти события. а то может проблема и не в акциях вовсе.


Alex80   (2014-02-04 02:32:00) [37]

Например, человек ставит GLScene. Когда фокус находится на TGLSceneViewer, то у него нет событий OnKeyPress, OnKeyDown, OnKeyUp.


Inovet   (2014-02-04 01:58:00) [38]

> [6] Alex80   (04.02.14 01:44)
> Неужели я первый кто с этим д*** сталкиваюсь?

Видимо, никто так не делает, а если делает, так не нужны они в «других контролах».


Alex80   (2014-02-04 01:44:00) [39]

Ещё проблема. Нужно, чтобы приходили повторения нажатия на стрелки, когда держишь их слишком долго.

Неужели я первый кто с этим д*** сталкиваюсь? Неужели нет какого-нибудь давно найденного решения или компонента?


Alex80   (2014-02-04 01:09:00) [40]


> Dimka Maslov ©   (03.02.14 11:25) [1]
> Если копнуть поглубже в механизм передачи клавиатурного
> ввода от операционной системы в активное окно, то мы увидим
> замечательную картину: система сначала посылает окну сообщение
> WM_GETDLGCODE, дабы узнать, хочет ли окно само отбрабатывать
> стрелки, табы и прочий управляющий ввод, либо же передавать
> фокус в другое окно.

А как это использовать чтобы отловить стрелки, но не заблокировать их?


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

Наверх

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