Заголовки − компоненты HeaderControl и Header
Компоненты заголовков HeaderControl и Header являются компонентами, с помощью которых можно управлять размещением расположенных под ними панелей. Заголовок состоит из ряда секций, причем пользователь во время выполнения приложения может изменять ширину отдельных секций с помощью мыши.
Задание 5. Изучить компоненты заголовков.
Начните новый проект. Перенесите на форму со страницы Win32 компонент HeaderControl. По умолчанию свойство Align задано равным alTop, что обеспечивает размещение компонента вверху окна формы. Измените это свойство на alNone и разместите компонент в любом месте.
Основное свойство компонента − Sections. Оно является списком объектов типа THeaderSection, каждый из которых описывает одну секцию заголовка.
Свойство Sections можно задать во время проектирования, нажав кнопку с многоточием рядом с этим свойством в Инспекторе Объектов или просто сделав двойной щелчок на компоненте и выбрав в появившемся меню пункт редактор секций. В обоих случаях откроется окно Правка. Левая быстрая кнопка позволяет добавить новую секцию в заголовок. Следующая быстрая кнопка позволяет удалить секцию. Кнопки со стрелкой позволяют изменять последовательность секций.
После того, как секция добавлена, в окне Инспектора Объектов появится множество свойств этого объекта.
В свойстве Text задайте текст заголовка, например секция 1.
Свойства MinWidth и MaxWidth определяют соответственно минимальную и максимальную ширину секции в пикселах. Только в этих пределах пользователь может изменять во время выполнения ширину секции курсором мыши. Значение ширины по умолчанию задается свойством Width.
Задайте 3-4 секции.
Выполните приложение. Убедитесь, что ширина секций во время выполнения изменяется курсором мыши, а при щелчке пользователя на секции она ведет себя как кнопка.
При изменении ширины секции во время выполнения генерируется событие OnSectionResize. В обработчик этого события надо вставить операторы, синхронно изменяющие ширину того, заголовком чего является секция: это может быть какая-то панель, таблица, изображение и т.п.
Свойство AllowClick, равное по умолчанию true, определяет поведение секции как кнопки при щелчке пользователя на ней. В этом случае при щелчке генерируется событие OnSectionClick, в обработчик которого и надо вставить операторы, выполняющие необходимые действия.
Свойство Style может иметь значение hsText − в этом случае в заголовке отображается значение свойства Text, или hsOwnerDraw− в этом случае отображается то, что рисуется непосредственно на канве операторами, записанными в обработчике события .
Компонент Header обладает существенно меньшими возможностями, чем HeaderControl, поэтому рассматривать его не будем.
Таймер − компонент Timer
Компонент Timer позволяет задавать в приложениях интервалы времени. Таймер − невизуальный компонент, который может размещаться в любом месте формы. Он имеет два свойства, позволяющие им управлять: Interval'>Interval − интервал времени в миллисекундах и Enabled − доступность. Свойство Interval задает период срабатывания таймера. Через заданный интервал времени после предыдущего срабатывания, или после программной установки свойства Interval, или после запуска приложения, если значение Interval установлено во время проектирования, таймер срабатывает, вызывая событие OnTimer. В обработчике этого события записываются необходимые операции.
Если задать Interval = 0 или Enabled = false, то таймер перестает работать. Чтобы запустить отсчет времени, надо или задать Enabled = true, если установлено положительное значение Interval, или задать положительное значение Interval, если Enabled = true.
Например, если требуется, чтобы через 5 секунд после запуска приложения закрылась форма − заставка, отображающая логотип приложения, на ней надо разместить таймер, задать в нем интервал Interval = 5000, а в обработчик события OnTimer вставить оператор Close, закрывающий окно формы.
Если необходимо в некоторой процедуре запустить таймер, который отсчитал бы заданный интервал, например, 5 секунд, после чего выполнить некоторые операции и отключить таймер, это можно сделать следующим образом. При проектировании таймер делается доступным (Enabled = true), но свойство Interval задается равным 0. Таймер не будет работать, пока в момент, когда нужно запустить таймер, не выполнится оператор
Timer1->Interval = 5000;
Через 5 секунд после этого наступит событие OnTimer. В его обработчике надо задать оператор
Timer1->Interval = 0;
который отключит таймер, после чего можно выполнять требуемые операции.
Другой эквивалентный способ решения задачи − использование свойства Enabled. Во время проектирования задается значение Interval = 5000 и значение Enabled = false. В момент, когда надо запустить таймер, выполняется оператор
Timer1->Enabled = true;
В обработчик события OnTimer, которое наступит через 5 секунд после запуска таймера, можно вставить оператор
Timer1->Enabled = false;
который отключит таймер.
Do'stlaringiz bilan baham: |