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

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

Передача фокуса ввода другому элементу нажатием Enter [D5, Win95/98]


Miss ©   (2002-06-10 12:46:00) 

Здравствуйте! Пожалуйста помогите! В одной из форм проекта располагается несколько DBEdit, при нажатии Enter фокус ввода передается следующему компоненту, например:
procedure TfmDrPRikaz.DBEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
DBEdit22.SetFocus;
end;
Нажатием кнопки на этой форме открывается еще одна форма, которая тоже содержит несколько DBEdit, но аналогичный код в обработчиках события OnKeyPress не работает, т.е. фокус ввода не передается другому элементу нажатием клавиши Enter?


Sava   (2002-06-11 11:26:00) [1]


Можно еще модернезировать предложение Producer :
1. У формы KeyPreview := true;
2.

Procedure Tform1.FormKeyPress(Sender: TObject, var key: char);
begin
if key = #13 then
begin
key:=#0;
perform(wm_nextdlgctl,0,0);
end
end;


Miss   (2002-06-11 10:37:00) [2]

Thank! Вариант на KeyUp работает, а ch и правда не нужно


Song   (2002-06-10 13:35:00) [3]

TForm.KeyPreview в True
А дальше обрабатьывай TForm.onKeyDown


Producer   (2002-06-10 13:34:00) [4]

2 Yuri-7: Ну и причем здесь событие OnEnter?
Человек имел ввиду нажатие кнопкиEnter.

Теперь 2 Miss:
Делаешь общий обработчик события onKeyPress для нескольких компонентов (для тех, нажатие Enter на которых должно приводить к передаче фокуса ввода):
procedure TMyForm.EnterPress(Sender: TObject;
var Key: Char);
begin
if Key = #13 then
begin
Key := #0; // чтобы не "пикал"
SelectNext(Sender as TWinControl, true, true);
end;
end;


oss   (2002-06-10 12:57:00) [5]

вернее можешь цеплять куда угодно, главное Enter отлови


oss   (2002-06-10 12:57:00) [6]

вернее можешь цеплять куда угодно, главное Enter отлови
и ch тебе тоже не надо :))


Yuri-7   (2002-06-10 12:57:00) [7]

Попоробуй обработку посадить на OnEnter


oss   (2002-06-10 12:55:00) [8]

на keyup
if #13=chr(key) then
FindNextControl(sender as TWinControl,true,false,false).setfocus
else ch:=true;


Наверх

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