Шаг 27.
Класс TControl. Активность и видимость элементов управления

    На этом шаге мы продолжим изучение некоторых событий и методов класса TControl. Полный перечень свойств, методов и событий приведен на шаге 16.

    Активность элемента позволяет ему получать и обрабатывать сообщения от клавиатуры, мыши и таймера. Она определяется свойством:

   property Enabled: Boolean;   . 

    Значение True делает управляющий элемент активным. При смене состояния Enabled выполняется перерисовка его на экране, при которой пассивные элементы, как правило, изображаются серым цветом.

    Свойство, определяющее возможность видимости элемента во время исполнения:

   property Visible: Boolean;   . 

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

   procedure Show;
   procedure Hide;    .

    Напомним, что, так как Visible является свойством, то выражение:

   Visible:=True;

не является простым присваиванием. Оно неявно содержит все необходимые операции для показа элемента управления. Это же касается всех остальных свойств компонентов, реакция на изменение которых должна произойти немедленно.

    Почему выше была применена формулировка "возможность видимости", а не "видимость"? Чтобы элемент был виден на экране, одного значения свойства Visible недостаточно. Нужно, чтобы видимыми были все предки элемента в иерархии. Реально видимость элемента можно узнать, пользуясь свойством:

   property Showing: Boolean;    .

    Это свойство устанавливается при изменении свойства Visible. Оно доступно только для чтения. Нужно иметь в виду, что при изменении видимости родительского элемента Showing не изменяется и может в какой-то момент не соответствовать истинному состоянию. Обновляет состояние свойства Showing для компонента метод:

   procedure UpdateControlState;      .

    Отрисовкой (изменением изображения на экране) элемента управления "заведуют" следующие методы:

    На следующем шаге мы рассмотрим интерфейс Drag&Drop.




Предыдущий шаг Содержание Следующий шаг