Parasit |
Отправлено: 09.03.2007, 22:18 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 68
|
Приведите пожалуйста пример сопоставления кнопки на форме программы и кнопки (при нажатии которой будет выполняться теже фу-и) на клавиатуре
Заранее Всем Спасибо |
|
aquanet sk |
Отправлено: 10.03.2007, 02:17 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 87
|
Вход: Form1, Button1
Для неактивного приложения горячие клавиши:
В заголовочном файле .h ( его можно вызвать по Ctrl+F6 для C++Builder6) прописываем строки (указаны жирным шрифтом):
...
private:
void __fastcall TForm1::WMHotKey(TWMHotKey &);
public:
__fastcall TForm1(TComponent* Owner);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_HOTKEY,TWMHotKey,WMHotKey);
END_MESSAGE_MAP(TComponent);
...
В тексте программы (.cpp файл) пишем:
...
void __fastcall TForm1::FormCreate(TObject *Sender)
{
// Регистрируем комбинацию горячей клавиши, для примера Ctrl+R
RegisterHotKey(Handle,2577,MOD_CONTROL, int('R')); //2577 — любая цифра в заданном диапазоне
}
...
//эту функцию прописываем вручную
void __fastcall TForm1::WMHotKey(TWMHotKey &identificator)
{
if (identificator.HotKey== 2577)
{
Form1->Button1Click(Form1); //програмно нажимаем кнопку Button1, соответственно выполняются все операторы и функции, прописанные в обработчике события OnClick кнопки Button1
}
}
Для активного окна приложения:
v1. Есть специальный компонент HotKey, и возможно не только он...
v2. Можно в инспекторе объектов на вкладке Events у события OnKeyDown формы Form1 и всех других компонентов (которые могут получать фокус) указать событие Button1Click.
|
|
Parasit |
Отправлено: 10.03.2007, 23:10 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 68
|
Спасибо ща пробовать буду
|
|