Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-68717
GOD
2002-10-06 02:12
2002.10.21
Копирование


3-68618
Filat
2002-09-29 12:23
2002.10.21
СРОЧНО!!!! User


1-68745
monstrische
2002-10-10 18:32
2002.10.21
Как в Delphi7 сделать popup-меню в стиле WinXP?


14-69021
Вова
2002-09-30 19:42
2002.10.21
Дайте совет


1-68756
Peroon
2002-10-11 13:40
2002.10.21
Таймер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский