Страница 15 из 39 Активность и видимость элементов управления Активность элемента позволяет ему получать и обрабатывать сообщения от клавиатуры, мыши и таймера. Она определяется свойством: (Pb) property Enabled: Boolean; Значение True делает управляющий элемент активным. При смене состояния Enabled выполняется перерисовка его на экране, при которой пассивные элементы, как правило, изображаются серьм цветом. Свойство, определяющее возможность видимости элемента во время исполнения: (Pb) property Visible: Boolean; Во время разработки все компоненты являются видимыми. Изменять это свойство непосредственно во время выполнения можно, используя два следующих метода: procedure Show; procedure Hide; Напомним, что, так как Visible является свойством, то выражение visible: =True не является простым присваиванием. Оно неявно содержит все необходимые операции для показа элемента управления. Это же касается всех остальных свойств компонентов, реакция на изменение которых должна произойти немедленно. Почему выше была применена формулировка "возможность видимости", а не "видимость"? Чтобы элемент был виден на экране, одного значения свойства Visible недостаточно. Нужно, чтобы видимыми были все предки элемента в иерархии. Реально видимость элемента можно узнать, пользуясь свойством: (Ro) property Showing: Boolean; Это свойство устанавливается при изменении свойства Visible. Оно доступно только для чтения. Нужно иметь в вицу, что при изменении видимости родительского элемента Showing не изменяется и может в какой-то момент не соответствовать истинному состоянию. Обновляет состояние свойства Showing для компонента метод: procedure UpdateControlState; Отрисовкой (изменением изображения на экране) элемента управления "заведуют" следующие методы: procedure Invalidate; | Отрисовывает компонент, вызывая функцию API InvalidateRect. | procedure update; | Предусматривает дополнительные операции, необходимые Windows при отрисовке окна. Для компонентов-окон, например, в ней вызывается функция UpdateWindow. Этот метод объединяет два предыдущих. Если элемент управления непрозрачный (имеет флаг csOpaque), занимаемый им прямоугольник предварительно очищается. | procedure Repaint; | procedure Refresh; | Представляет собой вызов Repaint. Рекомендуется для вызова отрисовки. | |