Вход


Главная страница >> Учебный процесс >> Конспекты >> Delphi. Библиотека визуальных компонентов VCL >> Общие принципы устройства и работы компонентов >> Фокус ввода
Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


[Назад]    [Содержание ]    [Вперед]

  


Фокус ввода


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

Function Focused: Boolean; Показывает, имеет ли элемент в данный момент фокус ввода.
function CanFocus: Boolean; Возвращает True, если оконный элемент может получить фокус ввода (для этого он и все его родительские оконные элементы управления должны быть активными (Enabled) и видимыми).
procedure SetFocus; Запрашивает у родительской формы получение фокуса ввода.

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

(Pb) property OnEnter: TNotifyEvent;

(Рb) property OnExit: TNotifyEvent;

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

Свойство

(Pb) property TabStop: Boolean;

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

(Pb) property TabOrder: TTabOrder;

TTabOrder = -1..32767;

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

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

procedure GetTabOrderList(List: TList);

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

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

procedure BringToFront;

procedure SendToBack;

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



[Назад]    [Содержание ]    [Вперед]

  


Для комментария : kadan@grsu.grodno.by

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017