Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2007, 20:25   #1
matus
Пользователь
 
Регистрация: 02.11.2007
Сообщений: 20
Вопрос переход курсора по нажатию клавиши

Здравствуйте, подскажите, пожалуйста, каким образом можно сделать так, чтобы при нажатии клавиши, напр. ENTER, курсор перемещался по объектам (Edit и ComboBox) в порядке Tab. Сейчас это возможно с помощью клавиши Tab. Спасибо за внимание
matus вне форума Ответить с цитированием
Старый 22.11.2007, 20:55   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Код:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = vk_Return then Edit2.SetFocus;
end;
_Dmitry вне форума Ответить с цитированием
Старый 22.11.2007, 21:04   #3
matus
Пользователь
 
Регистрация: 02.11.2007
Сообщений: 20
По умолчанию

ой спасибо Вам огромное!!!
matus вне форума Ответить с цитированием
Старый 22.11.2007, 22:33   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Как заставить кнопку Enter работать наподобие Tab

Цитата:
Как-то бухгалтер, который пользовался моей программой, заявил, что ему неудобно перескакивать пустые поля в форме кнопкой Tab, и что намного удобнее это делать обычным Enter-ом.

Пример обработчика события:

procedure Tform1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
ACtrl: TWinControl;
begin
if key = 13 then
begin
ACtrl := ActiveControl;
if ACtrl is TCustomMemo then exit;
repeat
ACtrl:= FindNextControl(ACtrl,true,true,fal se);
until (ACtrl is TCustomEdit) or
(ACtrl is TCustomComboBox) or
(ACtrl is TCustomListBox) or
(ACtrl is TCustomCheckBox) or
(ACtrl is TRadioButton);
ACtrl.SetFocus ;
end;
end;

Не забудьте установить свойство формы KeyPreview в true.
Как Вы можете видеть, этот код использует функцию FindNextControl, которая ищет следующий свободный контрол.
Так как все формы в приложении наследуются от одной, то достаточно поместить этот код в главную форму и после этого все формы будут реагировать на нажатие Enter подобным образом.
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
По нажатию Enter Andr Общие вопросы Delphi 8 22.12.2008 16:58
Сортировка по нажатию кнопки Nate-p Microsoft Office Access 2 25.06.2008 08:35
Рисование по нажатию клавиши на клавиатуре... zvuk01 Помощь студентам 1 25.12.2007 17:49
Картинка появляется по нажатию кнопки! MAKEDON Общие вопросы Delphi 3 13.12.2007 20:17
Картинка появляется по нажатию кнопки! MAKEDON Общие вопросы Delphi 3 12.12.2007 22:49