Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.21;
Скачать: CL | DM;

Вниз

Вопрос по OnKeyDown и SetFocus;   Найти похожие ветки 

 
Cosinus ©   (2002-10-10 10:39) [0]

Уважаемые господа у меня возникли два ,наверное простых для Вас вопроса, но все же если не затруднит, ответьте ,плз. Есть форма на которой лежит несколько кнопок, типа <,>,<<,>> (выполняющие роль прокрутки). Изначально при нажатии на клавишу , например, левой стрелки, хотелось чтобы курсор сдвинутся на какое-то значение соответственно влево. А теперь , собственно, вопросы.
1) Про OnKeyDown в helpe написано, что событие посылается компоненту, имеющиму фокус. Как мне сделать, чтобы при нажатии этой клавиши над ЛЮБЫМ компонентом (т.е. над всей формой, но не за ее границами)запускалась нужная мне функция? Все что мне приходит в голову - это либо на каждый компонент делать проверку onkeypress, либо SetFocus на какой то один компонент, делать прорверку и setfocus обратно(но по-моему это прямо скажем не очень вариант :)). Может winapi-шное что то есть, вроде я что то такое помню или я не прав?
2)Даже когда я вручную в run-time устанавливаю фокус (кликаю мышкой :)) допустим на кнопку "влево" и жму клавишу с соответствующим кодом ничего не происходит, почему?
Вот отрывок кода:
var pt:tpoint;
begin
GetCursorPos(pt);
If Key=37 then setcursorpos(pt.x+20,pt.y);
end;

Возможно я условие не на то ставлю?
Не ругайте плз, и заранее спасибо. :)


 
Alx2 ©   (2002-10-10 10:48) [1]

По 1-му п.: Напиши один на всех OnKeyDown.
Например

Button1.OnKeyDown := MyOnKeyDown;
Button2.OnKeyDown := MyOnKeyDown;
.........
Button2002.OnKeyDown := MyOnKeyDown;

или в инспекторе всем участникам концерта раздай один MyOnKeyDown


 
Song ©   (2002-10-10 10:57) [2]

1.TApplication.onMessage или TForm.onKeyDown с TForm.KeyPreview
2.Я так и не понял..


 
Cosinus ©   (2002-10-10 11:06) [3]

>Song ©
Не сдвигается курсор и все тут. OnKeyDown отрабатывается, а курсор не двигается. Код кнопки влево : 37.

>Alx2 © >Song © Спасибо, сеячас попробую


 
Song ©   (2002-10-10 11:08) [4]

Используйте предопределённые константы. VK_LEFT например.


 
cosinus ©   (2002-10-10 11:17) [5]

>Song © VK_LEFT не проходит. Я , собственно, забыл еще один вопрос, возможно самый главный. Как мне сделать, чтобы при нажатии кнопок со стрелками фокус не прыгал по кнопкам, как при TAB? TabStop:=false помог только с табом.


 
Skier ©   (2002-10-10 11:20) [6]

>cosinus
CM_DIALOGKEY ?


 
Song ©   (2002-10-10 11:29) [7]

Опять же или Skier (10.10.02 11:20) или TApplication.onMessage


 
cosinus ©   (2002-10-10 11:49) [8]

>Skier©,Song© Спасибо



Страницы: 1 вся ветка

Текущий архив: 2002.10.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
1-68689
AL2002
2002-10-10 19:39
2002.10.21
Сколько будет? В строке.


14-68955
iNew
2002-09-19 16:47
2002.10.21
Почему если файл заархивировать RAR и запаролить то этот


4-69057
Asteroid
2002-09-04 22:47
2002.10.21
Полупрозраченые окна


14-69007
VictorT
2002-09-27 19:31
2002.10.21
Програмер и системы счисления.


6-68903
ssv
2002-08-20 12:53
2002.10.21
Помогите с кодом