Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

TButton и OnKeyDown

5.0K
04 марта 2005 года
gnome
20 / / 08.01.2005
Здравствуйте, друзья!
Такая вот проблемка... Когда фокус ввода у TButton и я нажимаю клавиши LEFT, RIGHT, UP, DOWN, ENTER, не вызывается обработчик события OnKeyDown. Пробовал делать его обработчик и для Button и для формы. Причем нажатия остальных клавишь фиксируются нормально. Из-за чего такое происходит и как это обойти?
259
04 марта 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by gnome
Здравствуйте, друзья!
Такая вот проблемка... Когда фокус ввода у TButton и я нажимаю клавиши LEFT, RIGHT, UP, DOWN, ENTER, не вызывается обработчик события OnKeyDown. Пробовал делать его обработчик и для Button и для формы. Причем нажатия остальных клавишь фиксируются нормально. Из-за чего такое происходит и как это обойти?


Для начала в форме KeyPreview = true;

259
04 марта 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by AlexandrVSmirno

Для начала в форме KeyPreview = true;


На стрелки не реагирует. Попробуй сделать HOOK.

259
04 марта 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by AlexandrVSmirno

На стрелки не реагирует. Попробуй сделать HOOK.


А можно еще так:

Код:
//---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,
      bool &Handled)
{
    if(Msg.message == WM_SYSKEYDOWN)
        Label1->Text = "Клавиши F1-F10: "+AnsiString(Msg.wParam);
    if(Msg.message == WM_KEYDOWN)
    {
        Label1->Text = "Стрелки и другие клавиши: "+AnsiString(Msg.wParam);
        Handled = true;
    }

}


ЗЫ: Это называется тихо сам с собою.
5.0K
05 марта 2005 года
gnome
20 / / 08.01.2005
Цитата:
Originally posted by AlexandrVSmirno

А можно еще так:
Код:
//---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,
      bool &Handled)
{
    if(Msg.message == WM_SYSKEYDOWN)
        Label1->Text = "Клавиши F1-F10: "+AnsiString(Msg.wParam);
    if(Msg.message == WM_KEYDOWN)
    {
        Label1->Text = "Стрелки и другие клавиши: "+AnsiString(Msg.wParam);
        Handled = true;
    }

}


ЗЫ: Это называется тихо сам с собою.



Все заработало :)! Спасибо большое!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог