![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка нажатия клавиш
vlv © (2002-04-24 14:37:00)Какое сообщение надо обрабатывать для перехвата клавиши TAB?
vlv (2002-04-24 15:54:00) [1]Благодарю, Song, Игорь Шевченко.
Song (2002-04-24 15:41:00) [2]Всё-таки Вы заставили меня загрузить Дельфи :))
procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
With Msg Do
IF (Message=WM_KEYDOWN) and (wParam=VK_TAB) then wParam:=VK_DOWN;
inherited;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage:=AppMessage;
end;
Игорь Шевченко (2002-04-24 15:33:00) [3]День добрый,
Сообщение называется CM_DIALOGKEY, происходит от обработки WM_KEYDOWN
С уважением,
Song (2002-04-24 15:23:00) [4]Изменять-то они позволяют (не зря же там словечко Var перед Key стоит), другой вопрос, что никакого проку Вам нет от этого изменения, потому что фокус уже перескочил.
Sava (2002-04-24 15:22:00) [5]
> Например, как заменить VK_TAB на VK_DOWN?
У формыKeyPreview:=True;
а потом:
FOrmKEyPress
begin
if key= #13 then
begin
key:=0;
perform(wm_nextdlgctl,0,0);
end;
end;
vlv (2002-04-24 15:12:00) [6]Все эти события не позволяют изменять значения key.
Например, как заменить VK_TAB на VK_DOWN?
Song (2002-04-24 15:04:00) [7]
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
IF Key=VK_TAB then ShowMessage("Всё доходит!!!");
end;
Насчёт остальных событий.. извиняюсь, не прочитал вопрос до конца.
arhelon (2002-04-24 15:00:00) [8]на onKeyUp енто работает.
vlv (2002-04-24 14:46:00) [9]До этих событий TAB не доходит.
Есть какое-то сообщение с префиксом то ли CM_ , то ли CN_
Может, кто напомнит?
Song (2002-04-24 14:40:00) [10]onKeyPress, onKeyDown, onKeyUp