Основные компоненты, используемые для объединения других компонентов.
Контейнер – это визуальный компонент, который позволяет размещать на своей поверхности другие компоненты, объединяет их и становится их владельцем.
Контейнерами для других компонентов могут служить такие компоненты как Form, Panel, GroupBox, RadioGroup,ScrollBox.
Компонент RadioGroup (Объединение переключателей).
Для объединения зависимых переключателей в группу используется компонент – RadioGroup (вкладка Standard). Такая группа создана для упорядочения переключателей RadioButton и упрощения организации их взаимодействия. Но он может содержать и другие элементы, такие как Edit, Label, CheckBox и т.д.
Свойства компонента RadioGroup:
§ Caption типа TString - задает заголовок группы.
§ Items типа TString - содержит массив строк, отображаемых как заголовки переключателей. Нумерация строк начинается с нуля. С помощью этого свойства можно управлять количеством и названиями переключателей. Для добавления и удаления элементов из массива строк можно воспользоваться методами Add и Delete.
§ ItemIndex типа Integer определяет номер переключателя, выбранного в группе в данное время (нумерация начинается с 0). Если свойство принимает значение=-1, то в радиогруппе не выбран ни один переключатель.
§ Columns типа Integer задает число колонок на которые делятся переключатели в группе.
Программно эти же свойства можно задать следующим образом:
Пусть требуется динамически разместить в радиогруппе 6 переключателей, расположенных в 2 столбца, и сделать 5-ый переключатель выбранным, как показано на рисунке выше.
Обработчик для этих действий будет таким:
Компонент GroupBox( Группа) (вкладка Additional)– рамка с заголовком. Этот компонент служит контейнером для размещения дочерних компонентов и представляет собой прямоугольное окно с рамкой и текстом в разрыве рамки. Обычно с его помощью выделяется группа управляющих элементов, объединенных по функциональному назначению. Свойство Caption задает заголовок рамки.
Компонент Panel (вкладка Additional) –панель применяется в качестве средства группирования, а также для создания панелей инструментов и строк состояния. В отличие от TGroupBox он не имеет заголовка и поэтому менее удобен для функционального группирования элементов. С другой стороны, его свойство Caption отображается в виде текстовой строки и может использоваться для вывода сообщений.
Свойствакомпонента Panel:
§ Caption определяет заголовок панели.
§ Alignment управляет расположением заголовка панели.
Компонент имеет развитые средства создания различных эффектов трехмерности за счет использующихся в нем двух кромок - внешней и внутренней.
ü BevelWidth – определяет ширину каждой фаски в пикселах;
ü BevelInner– определяет вид внутренней фаски;
ü BevelOuter – определяет вид внешней фаски;
ü BorderWidth – определяет промежуток между фасками в пикселах.
Компонент ScrollBox (Область прокрутки) (вкладка Additional)представлен окном с возможностью прокрутки информации. Если какой-либо элемент в этом окне виден не полностью, то появляются полосы прокрутки: вертикальная и горизонтальная.
Свойства компонента ScrollBox:
§ Align – выравнивание области прокрутки внутри контейнера. Чтобы область прокрутки занимала все место формы необходимо свойству Align установить значение clClient.
§ ScrollInView – автоматически изменяет позиции полос прокрутки, чтобы интересующий компонент появился в видимой области.
§ AutoScroll типа Boolean определяет, появляются ли полосы прокрутки автоматически при необходимости. Если свойство имеет значение True, то полосы появляются автоматически.
Компонент TabControl (Одностраничный блокнот)
Компонент Delphi TabControl (Одностраничный блокнот) (вкладка Win32) внешним видом представляет прямоугольную область (одна страница) с управляющими элементами типа кнопки. При выборе какой либо кнопки, происходят события OnChanging и OnChange, в которых программируется дальнейшее действие приложения.
Основное свойство компонента TabControl - Tabs типа TStrings, в этом свойстве находятся названия всех кнопок (вкладок). Для формирования нажимаем на кнопку с многоточием напротив Tabs в Инспекторе объектов. И в редакторе строк пишем необходимые заголовки, одна строка - один заголовок вкладки (кнопки).
При работе приложения изменять и создавать заголовки вкладок можно также как и с любыми объектами TStrings:
TabControl.Tabs[0] := 'Новая закладка'; // изменяет первый заголовок.
TabControl.Tabs.Delete(3); // удаляется четвертая закладка
TabControl.Tabs.Add('Новая закладка'); // добавляется новая закладка.
Нумерация элементов начинается с нуля.
Компонент TabControl имеет несколько стилей отображения, свойство Style:
- стандартные вкладки (по умолчанию) - tsTabs,
- вкладки в виде кнопок -tsButtons,
- вкладки в виде плоских кнопок - tsFlatButtuns.
Если вкладки имеют внешний вид кнопок, то у компонента TabControl нет ограничительной рамки и при необходимости необходимо применять другие визуальные компоненты на подобии Bevel или Panel, также данные стили позволяют делать множественный выбор закладок, при установленном свойстве MultySelect в TRUE.
Для стиля tsTabs можно определить расположения вкладок, задав в свойство TabPosition:
- вверху (по умолчанию) - tpTop,
- внизу - tpBottom,
- слева - tpLeft,
- справа - tpRight.
Свойства TabWidth и TabHeight задают размеры вкладок в пикселах, по умолчанию они равны 0, благодаря чему размеры автоматически принимают размеры заголовка.
Свойство TabIndex (целочисленное) указывает выбранную закладку (вкладку). Это свойство доступно для чтения и записи и может быть использовано для для программного переключения между вкладками. Для переключения на третью вкладку нужно записать такой код:
TabControl1.TabIndex := 2;
Если ни одна из вкладок не выбрана то Свойство TabIndex будет равно -1, это произойдет, например, при динамическом удалении вкладки.
Заголовок вкладки (закладки) может слегка подсвечиваться, если над ним будет указатель мыши. За это отвечает свойство HotTrackтипа Boolean.
На вкладках также могут содержаться и небольшие картинки. Для этого необходимо поместить на форму компонент ImageList и в инспекторе объектов для компонента TabControl указать откуда брать рисунки (см. рис.). И рисунки будут добавлены согласно их нумерации: нулевой рисунок к нулевой вкладке, первый рисунок к первой вкладке и так далее.
Компонент PageControl (многостраничный блокнот)
Компонент Delphi PageControl(многостраничный блокнот) (вкладка Win32) является более сложным элементом управления, чем компонент Delphi TabControl, хотя они имеют довольно много общих свойств. PageControl может содержать несколько панелей класса TTabSheet, которые будут перекрывать друга. Переход на другую панель (страницу) осуществляется щелчком мыши в области заголовка страницы.
На этапе конструирования, чтобы добавить новую панель (страницу) необходимо нажать правую кнопку на компоненте и выбрать из контекстного меню пункт "New Page". Delphi создаст новую страницу с именем TabSheet1, ее можно переименовать, изменив свойство Caption в "Инспекторе объектов" объекта TabSheet (нужно проконтролировать, чтобы при выделении маркеры не затрагивали области заголовков компонента PageControl). Для удаления панели используем пункт меню - "Delete Page". Пункты меню "Next Page" и "Previouse Page" позволяют переходить на следующую и предыдущую страницы.
У компонента PageControl имеется два основных события OnChangeи OnChanging. Событие OnChange происходит сразу при переключении. А OnChangeing происходит перед переходом на другую страницу после клика на новой закладке. При этом учитывается параметр AllowChange, если его задать равным FALSE, то переход не осуществиться.
Процедура SelectNextPage(GoForward: Boolean) задает активной следующую панель, при GoForward равном TRUE и предыдущую, если GoForward равно FALSE.
Свойство PageCount сообщает количество страниц (только для чтения).
СвойствоActivePage– выбор активной страницы (TabSheet) .
СвойствоMultiLine –расположение закладок в несколько рядов.
ПРИМЕР: