Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перехват и дальнейшая передача сообщений. [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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо