Delphi для профессионалов



 

Управление фокусом


В процессе работы приложения тот или иной элемент управления получает фокус ввода в зависимости от действий пользователя. Очень часто передача фокуса между элементами управления должна быть упорядочена. Например, при вводе данных в приложениях баз данных пользователь должен иметь максимум удобств для обеспечения хорошей производительности труда. Для этого он должен работать только с клавиатурой, не отвлекаясь на лишние операции по передаче фокуса в нужный компонент при помощи мыши.

Для решения подобного рода проблем все оконные элементы управления имеют два свойства. Свойство TabOrder определяет порядок передачи фокуса между элементами управления одного владельца (формы, панели, группы) при нажатии клавиши <Таb>. Значение 0 имеет компонент, который будет получать фокус при открытии формы.

Для того чтобы свойство TabOrder работало, свойство Tabstop должно иметь значение True.

Кроме этого, все кнопки (произошедшие от TButtonControl) имеют свойство Default, которое при значении True заставляет кнопку реагировать на нажатие клавиши <Enter> как на щелчок на кнопке, даже если она не имеет фокус. Только одна кнопка на форме может иметь это свойство установленным.

Для передачи фокуса любому оконному элементу управления программными средствами можно использовать метод

procedure SetFocus; virtual;

унаследованный от класса TwinControl.

При необходимости работы в форме применяется метод

function SetFocusedControl(Control: TWinControl): Boolean; virtual;

класса TForm, в параметре указывается указатель на компонент, принадлежащий форме.