Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OnKeyDown 
:(
    Опции темы
Dmi3ev
Дата 15.6.2009, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 16
Всего: 41



когда на форме есть кнопки и написан вот такой код на событие OnKeyDown данной формы
Код

if (Key==VK_UP)
//...

это событие не срабатывает, а происходит переход между кнопками...
как это обойти???

Добавлено через 3 минуты и 35 секунд
даже так скажу, дело совсем не в коде, который расположен на данном событии, а это событие не срабатывает, фокус стоит на кнопке, и это событие игнорируется... как сделать так, чтобы это событие работало при любом раскладе, те, не зависимо от того, где фокус???

Добавлено через 10 минут и 47 секунд
Пока делаю так, на KeyDown каждого компонента на форме выбираю Form1->OnKeyDown.
работает, но мне кажется, что это не лучший выход...

Добавлено через 14 минут и 27 секунд
причем не совсем работает при VK_UP не работает, поэтому пока пишу
Код

if (Key=='W')



--------------------

PM MAIL   Вверх
Keeper89
Дата 15.6.2009, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 3
Всего: 58



Проблема в том, что выполняется "табовый" переход. Я бы сделал локальный хук на VB_UP и выполнял нужную операцию.


--------------------
PM MAIL WWW   Вверх
Usper
Дата 16.6.2009, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 13.4.2007

Репутация: 15
Всего: 15



Цитата(Dmi3ev @  15.6.2009,  23:06 Найти цитируемый пост)
как сделать так, чтобы это событие работало при любом раскладе, те, не зависимо от того, где фокус???


Установить свойство KeyPreview формы в true.


--------------------
На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник.
PM MAIL   Вверх
Dmi3ev
Дата 16.6.2009, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 16
Всего: 41



Цитата

Установить свойство KeyPreview формы в true. 

не айс

Добавлено через 1 минуту и 54 секунды
с VK_UP не помогает...


--------------------

PM MAIL   Вверх
Usper
Дата 16.6.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 13.4.2007

Репутация: 15
Всего: 15



И не должно. Обработчик формы OnKeyDown не перехватывает события от нажатия на клавиши управления курсором и Tab. Если не хочешь перехватывать сообщения ОС можно воспользоваться обработчиком OnShortCut:
Код

void __fastcall TForm1::FormShortCut(TWMKey &Msg, bool &Handled)
{
    switch (Msg.CharCode)
    {
        case VK_UP: Form1->Top--; break;
        case VK_DOWN: Form1->Top++; break;
        case VK_LEFT: Form1->Left--; break;
        case VK_RIGHT: Form1->Left++; break;
    }   
    Handled=true;
}


Это сообщение отредактировал(а) Usper - 16.6.2009, 16:26


--------------------
На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0643 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.