Справочник по компонентам Delphi. Часть 1
Страница 20. Фокус ввода


 

Фокус ввода

Будучи окнами Windows, TWinControl и его потомки должны управлять фоку­сом ввода (состоянием, когда они получают и обрабатывают входные сооб­щения). Они имеют предназначенные для этого методы:

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

function Focused: Boolean-

Показывает, имеет ли элемент в данный момент фокус ввода.

function CanFocus: Boolean;

Возвращает True, если оконный элемент может по­лучить фокус ввода (для этого он и все его роди­тельские оконные элементы управления должны быть активными (Enabled) и видимыми).

procedure SetFocus;

Запрашивает у родительской формы получение фокуса ввода.

При получении и утере фокуса оконными компонентами происходят события:

(Pb) property OnEnter: TNotifyEvent;

(Р1э) property OnExit: TNotifyEvent;

TNotifyEvent — простейшее событие — извещение, не имеющее параметров. Свойство

(Pb) property TabStop: Boolean;

показывает, есть ли на данном элементе табулостоп. Между элементами формы, у которых TabStop установлено в Тше, можно передвигаться (перемещать фокус ввода) нажатиями клавиш /+. Очередность перехода фокуса определяется специальным списком. Положение элемента управления в родительском списке табулостопов определяется при помощи свойства:

(Pb) property TabOrder: TTabOrder;
TTabOrder = -1..32767;

При разработке формы номера присваиваются последовательно в порядке добавления компонентов, начиная с 0. Нулевой компонент первым получит фокус при активизации. Программист может менять значение этого свойства, не заботясь об учете других элементов, т. к. перенумерация производится автоматически. При отсутствии табулостопа на элементе его свойство TabOrder равно -1.

Можно получить и весь список, содержащий иерархию дочерних элементов, имеющих табулостоп:

procedure GetTabOrderList(List: TList) ;

Этот метод добавляет в уже существующий список List все дочерние компо­ненты, имеющие табулостоп; каждый из них при добавлении делает то же самое. Таким образом, элементы списка имеют тип TWinControl.

Два метода предназначены для управления показом перекрывающихся до­черних элементов управления:

procedure BringToFront;
procedure SendToBack;

Метод BringToFront переносит элемент в конец родительского списка (визуа­лизация начинается с первого) и показывает его поверх остальных. SendToBack, наоборот, переносит элемент в начало и таким образом сверху окажутся все перекрывающиеся с ним. При этом элемент теряет фокус ввода (если имел).

Класс инкапсулирует шрифт Windows. В Delphi допускаются только горизон­тально расположенные шрифты. В конструкторе объекта по умолчанию принимается шрифт System цвета clWindowText размера 10 пунктов.

 
« Предыдущая статья   Следующая статья »