Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Edit

357
09 октября 2002 года
Тимофей
112 / / 20.02.2000
У меня есть несеолько Edit'ов на форме. Подскажите, как по клавише enter сделать активным следующий Edit. Заранее спасибо.
295
09 октября 2002 года
gray_k
356 / / 20.12.1999
Цитата:
Originally posted by Тимофей
У меня есть несеолько Edit'ов на форме. Подскажите, как по клавише enter сделать активным следующий Edit. Заранее спасибо.


У формы есть свойство - ActiveControl.Делаешь так.
Например надо, чтобы после Edit1 по нажатию интера стновился активным Edit2. У Edit1 на событие OnKeyDown пишешь обработчик:
if(Key==VK_RETURN)
Form1->ActiveControl = Edit2;
И Всё:)
Также можно написать аналогичный обработчик на событие OnShortCut приложения(Application). Перехватывается это событие с помощью компонента ApplicationEvents.

357
09 октября 2002 года
Тимофей
112 / / 20.02.2000
Цитата:
Originally posted by gray_k

У формы есть свойство - ActiveControl.Делаешь так.
Например надо, чтобы после Edit1 по нажатию интера стновился активным Edit2. У Edit1 на событие OnKeyDown пишешь обработчик:
if(Key==VK_RETURN)
Form1->ActiveControl = Edit2;
И Всё:)
Также можно написать аналогичный обработчик на событие OnShortCut приложения(Application). Перехватывается это событие с помощью компонента ApplicationEvents.



Спасибо.

317
10 октября 2002 года
Relax
573 / / 20.09.2000
есть еще вариант - более универсальный. у каждого компонента есть свойство TabOrder - это номер, определяющий порядок, в котором фокус переходит на контролы по нажатию Tab. можно по ентеру делать то же самое:

TWinControl *next =
FindNextControl((TEdit *)Sender,true,true,false);
if(next) next->SetFocus();

удобство в том, что функция одна на все контролы ;)
295
10 октября 2002 года
gray_k
356 / / 20.12.1999
Цитата:
Originally posted by Relax
есть еще вариант - более универсальный. у каждого компонента есть свойство TabOrder - это номер, определяющий порядок, в котором фокус переходит на контролы по нажатию Tab. можно по ентеру делать то же самое:

TWinControl *next =
FindNextControl((TEdit *)Sender,true,true,false);
if(next) next->SetFocus();

удобство в том, что функция одна на все контролы ;)


Не очень понятно, почему это должно срабатывать при нажатии Интера. Можно подробнее плиз :-? . на какое событие должен быть этот обработчик? OnShorCut?

317
10 октября 2002 года
Relax
573 / / 20.09.2000
на OnKeyPress или на OnKeyDown... также как ты писал - сравниваешь кей с VK_RETURN... только код внутри ифа другой... представь, что на форме, например, десять эдитов, которые надо заполнять последовательно. если устанавливать Active Control, то придется писать десять обработчиков, а если юзать FindNextControl(), то обработчик получается один для всех :)
293
12 октября 2002 года
SEDEGOFF
586 / / 06.10.2002
Для всех Edit укажи оди обработчик
void __fastcall TForm1::DBEdit5KeyPress(TObject *Sender, char &Key)
{
if(Key == VK_RETURN)
SelectNext(TForm1::ActiveControl, true, true);
}
Порядок табуляции выставляется так
Правой кнопкой на форме клик а там Tab Order
ну и упорядочиваешь
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог