

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
а) Перетаскивание |
компонента в окне б) Вид окна «Дерева объектов» после |
«Дерева объектов» |
перетаскивания компонентов rbAction и |
|
rbPermanent |
Рисунок 9 – Перемещение компонентов в окне «Дерева объектов» (Object Tree View)
Теперь при перемещении компонента gbDiscount вместе с ним перемещаются все помещенные в него компоненты. Форма примет вид, приведенный на рисунке 10.
Рисунок 10 – Компонент TGroupBox на форме.
Обратите внимание, что также будут вести себя любые компоненты помещенные в
TGroupBox.
Компонент TРаnеl
Компонент TPanel находится на вкладке Standart палитры компонентов (рисунок
11).

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Рисунок 11 – Расположение компонента TPanel в палитре компонентов
Компонент TPanel представляет собой контейнер общего назначения. В отличие от компонента TGroupBox, он не имеет заголовка и поэтому менее удобен для функционального группирования элементов. С другой стороны его свойство Caption отображается в виде текстовой строки и может использоваться для вывода сообщений. Компоненты этого класса часто помещаются на форму для того, чтобы располагать вставленные в них дочерние компоненты вдоль одной из сторон окна независимо от изменения размеров этого окна.
Компонент имеет развитые средства создания различных эффектов объемности за счет использующихся в нем двух кромок – внешней и внутренней. Свойства компонента TPanel представлены в таблице 4.
Таблица 4 – Свойства компонента TPanel
Свойство |
Описание |
|
|
|
|
type TBorderStyle = bsNone..bsSingle; |
Определяет стиль рамки: bsNone – нет рамки |
|
property BorderStyle: TBorderStyle; |
bsSingle – компонент по периметру обводится |
|
линией толщиной в 1 пиксел |
||
|
||
property FullRepaint: Boolean; |
Разрешает/запрещает перерисовку панели и всех |
|
|
ее дочерних элементов при изменении ее |
|
|
размеров |
Для компонента объявлено событие OnResize, в обработчике которого можно предусмотреть необходимую реакцию на изменение размеров компонента.
Компонент TRadioGroup
Компонент TRadioGroup находится на вкладке Standart палитры компонентов (рисунок 12).
Рисунок 12 – Расположение компонента TRadioGroup в палитре компонентов
Компонент TRadioGroup представляет собой специальный контейнер, предназначенный для размещения переключателей класса TRadioButton. Каждый размещаемый в нем переключатель помещается в специальный список Items и доступен по индексу, что упрощает обслуживание группы. Свойства компонента TRadioGroup перечислены в таблице.
Таблица 5 – Свойства компонента TRadioGroup
Свойство Описание
property Columns: Integer; Определяет количество столбцов переключателей.
property Itemindex: Integer; Содержит индекс установленного переключателя. Содержит -1 если нет установленного переключателя.
property Items: TStrings; Содержит список строк с заголовками элементов. Добавление/удаление элементов достигается добавлением/удалением строк списка Items.

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Свойство Описание
property Caption:String; Содержит подпись группы зависимых переключателей.
После размещения компонента на форме он пуст. Чтобы создать в нем хотя бы один переключатель, следует раскрыть редактор списка Items (рисунок 13) и ввести хотя бы одну строку. Строки Items используются как поясняющие надписи справа от переключателей, а их количество определяет количество переключателей в группе. На рисунке 14 приведено окно ввода списка строк.
Рисунок 13 – Вызов окна "String List Editor"
Рисунок 14 – Окно «String List Editor»
На следующем рисунке приведен вид компонента TRadioGroup на форме после ввода строк в свойство Items.

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Рисунок 15 – Вид компонента TRadioGroup после изменения свойства Items
Обратите внимание, что после создания компонента его свойство ItemIndex по умолчанию имеет значение -1, это означает, что ни один переключатель в группе не установлен. Чтобы в момент появления компонента на экране какой-то переключатель был уже установлен, необходимо на этапе конструирования с помощью окна инспектора объектов или программно (например, в обработчике OnActivate формы) установить в свойство ItemIndex номер соответствующего переключателя (нумерация начинается с 0). Это же свойство позволяет программе проанализировать выбор пользователя, например, так:
case RadioGroupl.Itemindex of
0:...; // Установлен 1-й переключатель 1:...; // Установлен 2-й переключатель
else // He установлен ни один из переключателей
end;
Задания к лабораторной работе
1.Наберите программы приведенные в лабораторной работе.
2.Модифицируйте программу из листинга 2 таким образом, чтобы она выдавала следующие результаты:
−сумма покупки без скидки;
−сумма покупки со скидкой;
−сумма скидки.
Добавьте на форму поясняющие надписи (TLabel) для строк ввода. Исключите из списка обхода по клавише <Tab> все компоненты TCheckBox. После запуска программы ее окно должно появляться в центре экрана. Поместите компоненты TCheckBox на компонент TPanel, измените рамку компонента TPanel таким образом, чтобы панель выглядела вдавленной в форму.
3.Модифицируйте программу из листинга 3. Поместите зависимые переключатели
TRadioButton в компонент TGroupBox.
4.Модифицируйте программу из листинга 3. Используйте для создания группы зависимых переключателей компонент TRadioGroup.
Вопросы к лабораторной работе
1.Сколько состояний может иметь переключатель TCheckBox?
2.В чем отличие переключателя TCheckBox от переключателя TRadioButton?