void __fastcall TForm1::ApplicationEvent1Message(tagMSG &Msg, bool &Handled)
{
//257 - Сообщение о нажатия клавиши
//VK_ESCAPE - Клавиша ESC ... Можно любые другие, напр. VK_F2 или VK_DELETE
if (Msg.message == 257 && Msg.wParam == VK_ESCAPE)
{
Form1->Caption = "OK";
}
}
Обработчик нажатия
отловить событие нажатия, потому как обычный обрабочик почему-то перестаёт работать. :(
лично у меня была обычная программка, которую я сейчас переделал с MDI интерфейсом... всё подправил, как следует, а на событие OnKeyDown в родительском окне совершенно пропала реакция:( как его надо модифицировать, чтоб отлавливать нажатия кнопок??
можно попробовать компонент ApplicationEvent. Имхо, он для этого и создан...
действительно стОит добавить такой компонент и описать событие:
void __fastcall TForm1::ApplicationEvents1ShortCut(TWMKey &Msg, bool &Handled)
{
if (VK_ESCAPE == Msg.CharCode) ....
}
Код:
Вообще, можно перехватывать много различных сообщений. Помести на форму StringList и автоматически при поступлении сообщений добавляй туда строки. Только следует отсеивать некоторые типы сообщений, такие как движение мыши, дабы не повесить программу
ну это мне будет уже лишним)) мне всего-то надо было поймать escape, чтоб предложить уважаемому пользователю выйти из моей программы;)