Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.24;
Скачать: CL | DM;

Вниз

Передача фокуса ввода другому элементу нажатием Enter   Найти похожие ветки 

 
Miss ©   (2002-06-10 12:46) [0]

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


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

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


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

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


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

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


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

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


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

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;


 
Song ©   (2002-06-10 13:35) [6]

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


 
Miss ©   (2002-06-11 10:37) [7]

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


 
Sava ©   (2002-06-11 11:26) [8]


Можно еще модернезировать предложение 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;



Страницы: 1 вся ветка

Текущий архив: 2002.06.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
6-77522
elefant
2002-04-15 09:52
2002.06.24
Мастера ПОМОГИТЕ!!!


1-77462
Мефодий
2002-06-10 19:48
2002.06.24
Ошибка в команде NewPage при использовании QuickReport


7-77645
BugMaker
2002-03-27 12:33
2002.06.24
Сервис


3-77289
Manul
2002-05-29 22:38
2002.06.24
Хитрый репорт


14-77614
[NIKEL]
2002-05-22 18:00
2002.06.24
Просто старая шутка :]