![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Переход стрелочками между окошками
Light-blr © (2010-05-07 01:59:00)Помогите, пожалуйста. На форме есть n окошек, расположенных одно под другим. Необходимо по стрелочке "вверх" переходить на окошко, расположенное выше текущего, ну и "вниз" соответственно.
Пытаюсь поймать сообщение, ничего у меня не выходит.
...
type
TForm1 = class(TForm)
Shape1: TShape;
Edit1: TEdit;
Shape2: TShape;
Edit2: TEdit;
procedure Edit1Enter(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure WMKeyUp(var Msg:TWMKeyUp); message WM_KeyUp;
...
procedure TForm1.WMKeyUp(var Msg:TWMKeyUp);
begin
if Msg.CharCode = vk_Up then
if Order[tp,3]<>0 then tp:=Order[tp,3];
Comp:=FindComponent(Names[tp]);
(Comp as TEdit).SetFocus;
inherited;
end;
в массиве Order у меня хранятся индексы названий окошек сверху/снизу/справа/слева от текущего.
Так вот в эту функцию я никак не попадаю, хотя там стоит точка останова. То есть ничего она не ловит и соответственно переход между окошками по стрелочкам не происходит.
Помогите, пожалуйста, разобраться с этой ситуацией.
Mike Kouzmine (2010-05-07 07:53:00) [41]используй стандартный механизм
либо сам управляй селектомнекст, либо заменяй ки ап даун на таб либо шифт таб
Leonid Troyanovsky (2010-05-07 07:44:00) [42]
> Light-blr (07.05.10 01:59)
> Помогите, пожалуйста. На форме есть n окошек,
Если "окошко" есть Edit (n=2), то для перемещений между ними,
как и другими винконтролами, предназначен Tab & Shift+Tab.
Обработчик же формы не срабатывает потому, что сообщение
обрабатывается контролом в фокусе.
Полезно также помнить сказанное by Peter Below:
http://groups.google.com/group/fido7.ru.delphi.chainik/msg/9882c0fd38c38706
--
Regards, LVT.