•  
Создано: 04.09.2010 5:12:13 · Исправлено: 04.09.2010 5:12:13 · Прочтений: 6199

Во время работы приложения только один из управляющих элементов принимает клавиатурный ввод в текущий момент. Такой управляющий элемент обладает фокусом ввода (сфокусирован).

Передача фокуса ввода выполняется щелчком мыши на другом управляющем элементе или нажатием клавиш Tab либо Shift+Tab. При использовании клавиатуры фокус ввода передаётся последовательно от одного управляющего элемента к другому, причём Tab обеспечивает перебор в прямом порядке, а Shift+Tab – в обратном. Порядковый номер в очереди, определяющей получение фокуса ввода, задаётся целочисленным свойством TabOrder (начиная с нуля). Этот номер действует относительно владельца: формы или компонента. Первоначально порядок перебора соответствует очерёдности добавления компонентов на форму, но его можно изменить, устанавливая требуемые значения свойства TabOrder. Если элементов на форме много, то удобнее воспользоваться окном EditTabOrder, которое открывается командой Edit|TabOrder и позволяет быстро и просто задать нужную очерёдность.

Включением и исключением из очереди управляет свойство TabStop булевского типа. Обычно значение этого свойства равно true. Если же установить в этом свойстве false, то управляющий элемент не сможет получить фокус ввода.

Для управления фокусом ввода программно используется метод SetFocus и свойство формы ActiveControl. Чтобы передать фокус ввода требуемому управляющему элементу, надо у него вызвать метод SetFocus, например, Edit1.SetFocus.

Свойство формы ActiveControl указывает сфокусированный в текущий момент элемент. Это свойство доступно из Инспектора объектов и может быть использовано для задания элемента, который первым получит фокус ввода (в обход очереди). Если значение свойства не задано, то первым фокус ввода получает управляющий элемент, у которого значение TabOrder равно нулю.