Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
а) Перетаскивание |
компонента в окне б) Вид окна «Дерева объектов» после |
«Дерева объектов» |
перетаскивания компонентов rbAction и |
|
rbPermanent |
Рисунок 9 – Перемещение компонентов в окне «Дерева объектов» (Object Tree View)
Теперь при перемещении компонента gbDiscount вместе с ним перемещаются все помещенные в него компоненты. Форма примет вид, приведенный на рисунке 10.
Рисунок 10 – Компонент TGroupBox на форме.
Обратите внимание, что также будут вести себя любые компоненты помещенные в
TGroupBox.
Компонент 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
находится на вкладке 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?
Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
3.Как можно изменить порядок обхода компонентов формы с помощью клавиши
<Tab>?
4.Как сделать так, чтобы компонент не выделялся клавишей <Tab> (исключить компонент из списка компонентов для обхода с помощью клавиши <Tab>)?
5.Как можно создать несколько независимых групп зависимых переключателей
TRadioButton?
6.Как можно поместить компонент в компонент-контейнер?
7.Какие компоненты могут служить контейнерами для других компонентов?
Справочные таблицы |
|
|
Таблица 1 – Свойства компонента TCheckBox .......................................................................... |
1 |
|
Таблица 2 |
– Свойства компонентов............................................................................................. |
3 |
Таблица 3 |
– Свойства компонентов............................................................................................. |
8 |
Таблица 4 |
– Свойства компонента TPanel ................................................................................ |
12 |
Таблица 5 |
– Свойства компонента TRadioGroup..................................................................... |
12 |