![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перехват и дальнейшая передача сообщений. [D5, Win95/98]
KA © (2004-02-13 14:41:00)У меня 40 эдитов на форме. Мне нужно, чтобы при нажатии на ЭНТЕР они думали, что ТАБ. Оконным процедурам всех эдитов я присвоил свою процедуру. В ней я проверяю WM_KEYDOWN на VK_RETURN и если да, то keybd_event(VK_TAB,1,0,0), но при этом он пищит.
После проверки если не VK_RETURN, то нужно передать сообщение едиту, которому оно предназначалось, но я не знаю его хендл.
iva (2004-02-14 18:16:00) [1]{ Это обработчик события OnKeyPress для ФОРМЫ! }
procedure TExampleForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
case key of
#13: Perform(WM_NEXTDLGCTL, 0, 0);
....
nexxiss (2004-02-14 18:08:00) [2]По TabOrder
KA (2004-02-14 11:27:00) [3]А откуда я знаю, следующий контрол. Или как его узнать.
4i (2004-02-13 16:29:00) [4]а не проще ли в обработчике передавать фокус следующему контролу?
KA (2004-02-13 15:17:00) [5]При этом орет beeper, а мне не надо.
clickmaker (2004-02-13 14:58:00) [6]Это в обработчике OnKeyDown
clickmaker (2004-02-13 14:57:00) [7]if (Key = VK_RETURN) then begin
keybd_event(VK_TAB, 0, 0, 0);
Key := 0;
end;