Как заставить кнопку Enter работать наподобие Tab.
Автор: Khaled Shagrouni
Как-то бухгалтер, который пользовался моей
программой, заявил, что ему не удобно
перескакивать пустые поля в форме кнопкой Tab, и
что намного удобнее это делать обычным Enter-ом.
Предлагаю посмотреть, как я решил эту проблемму.
Совместимость: Все версии Delphi
Пример обработчика события: |
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,false);
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 подобным образом.
|