- •В телекоммуникациях ” Преподаватель: доцент кафедры прикладной математики и кибернетики
- •Цель курса– ознакомление с общими принципами визуального программирования на примере системы Delphi.
- •Пример оформления контрольной работы. Вариант 12
- •1.1Структура программы 7
- •Рабочая программа курса
- •Основные конструкции языка Паскаль
- •Структура программы
- •Операторы языка Паскаль
- •Процедуры и функции
- •Объектно-ориентированная методология
- •Различные технологии программирования
- •Принципы объектно-ориентированного программирования
- •Модули и классы
- •Знакомство со средой программирования Delphi
- •Структура среды программирования
- •Проект Delphi
- •Главное меню среды
- •Первое приложение на Delphi
- •Контрольные вопросы
- •Библиотека визуальных компонентов (vcl)
- •Иерархия базовых классов vcl
- •Типы свойств компонентов. Изменение свойств
- •Некоторые общие свойства компонентов
- •События в Delphi
- •Некоторые общие события компонентов
- •Контрольные вопросы
- •Класс tForm
- •Роль формы в приложении
- •Свойства класса tForm
- •События формы
- •Пример использования событий формы
- •Контрольные вопросы
- •Графические возможности визуальных компонентов
- •Свойства класса tCanvas
- •Методы класса tCanvas
- •Примеры использования свойств и методов класса tCanvas
- •Использование визуальных компонентов
- •Редактируемые компоненты
- •Списки выбора
- •Диалоговые компоненты
- •Переключатели
- •Контрольные вопросы
- •Лабораторная работа 1
- •Лабораторная работа 2
- •Лабораторная работа 3
- •Лабораторная работа 4
- •Лабораторная работа 5
- •Контрольная работа правила выполнения и оформления контрольной работы
- •Правила получения зачета
- •Литература
Переключатели
Переключатели используется для того, чтобы пользователь мог указать свое решение типа Да/Нет или Да/Нет/Не совсем. Различают независимые и зависимые переключатели. В составе диалогового окна может быть несколько переключателей. Если состояние любого из них не зависит от состояния остальных, то такие переключатели называются независимыми, в противном случае – зависимыми. На закладке Standart имеются визуальные компоненты-переключатели: TCheckBox (независимый переключатель) и TRadioButton (зависимый переключатель).
Таблица 25Свойства компонента TCheckBox.
Alignment |
Определяет положение текста: taLeftJustify – с левой стороны компонента; taRightJustify – с правой стороны |
AllowGrayed |
Логическое свойство, которое разрешает/запрещает использование состояния cbGrayed (Не совсем) |
Caption |
Содержит связанный с компонентом текст |
Checked |
Логическое свойство, которое содержит выбор пользователя типа Да/Нет. Состояния cbUnchecked и cbGrayed отражаются как False |
State |
Содержит состояние компонента: cbUnchecked – нет; cbChecked – да; cbGrayed – не совсем |
Типичное использование компонента:
if CheckBox1.Checked then ShowMessage(‘Yes’)
else ShowMessage(‘No’)
Или:
case CheckBox1.State of
cbChecked : ShowMessage(‘Yes’);
cbUnchecked: ShowMessage(‘No’);
cbGrayed : ShowMessage(‘Not sure’);
end;
Свойство Color компонента фактически игнорируется, а свойства Height и Width определяют размеры прямоугольника, в котором выводится связанный с переключателем текст, и не влияют на размеры прямоугольного окошка. Сам текст указывается в свойстве Caption.
В отличие от TCheckBox компонент TRadioButton представляет собой зависимые переключатель, предназначенные для выбора одного из нескольких взаимоисключающих решений. На форму необходимо поместить по меньшей мере два таких компонента. Они могут иметь только два состояния, определяемых свойствомСhecked. Если в одном компоненте это свойство принимает значениеTrue, во всех других компонентах, расположенных в том же контейнере, свойстваСheckedпринимают значенияFalse. Например, так выглядит стандартное завершение сеанса работы вWindows.
Как и в TCheckBox, программист не может изменять размеры и цвет круглого окошка компонента. Для компонентов TCheckBoxиTRadioButtonопределено событиеOnClick, которое генерируется в момент щелчка мыши по компоненту.
Компонент класса TRadioGroup представляет собой специальный контейнер с заголовком, предназначенный для размещения зависимых переключателей класса TRadioButton.
Таблица 26Свойства компонента TRadioButton
После размещения на форме компонент пуст. Чтобы создать в нем хотя бы один переключатель, следует раскрыть редактор списка Itemsи ввести хотя бы одну строку: строкиItemsиспользуются как поясняющие надписи справа от переключателей, а их количество определяет количество переключателей в группе. После создания компонента его свойствоItemIndexпо умолчанию имеет значение -1, т.е. ни один переключатель в группе не выбран. Если в момент появления компонента на экране в каком-то переключателе выбор уже должен быть установлен, необходимо на этапе конструирования с помощью Инспектора объектов или программно (например, в обработчикеOnActivateформы) установить в свойствоItemIndexномер соответствующего переключателя (нумерация начинается с 0). Это же свойство позволяет программе проанализировать выбор пользователя.
Таблица 27Свойства компонента TRadioButton
Columns |
Определяет количество столбцов переключателей |
Itemlndex |
Содержит индекс выбранного переключателя |
Items |
Содержит список строк с заголовками элементов. Добавление/удаление элементов достигается добавлением/удалением строк списка Items. |
procedure TForm1.FormCreate(Sender: TObject);
begin
RadioGroup1.Items.Add(' Вертикальная');
RadioGroup1.Items.Add(' Горизонтальная');
RadioGroup1.ItemIndex := 2;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
if RadioGroup1.Items[RadioGroup1.ItemIndex] = ' Вертикальная' then
Memo1.ScrollBars:= ssVertical;
if RadioGroup1.Items[RadioGroup1.ItemIndex] = ' Горизонтальная' then
Memo1.ScrollBars:= ssHorizontal;
end;
Или
case RadioGroup1.ItemIndex of
0: Memo1.ScrollBars:= sbVertical;
1: Memo1.ScrollBars:= sbHorizontal;
else
..... //Не выбран ни один переключатель
end;
Подобно тому как TRadioGroup группирует зависимые переключатели, TСheckListBox группирует независимые переключатели, позволяя обратиться к любому из них по индексу. Чтобы вставить в компонент группу независимых переключателей, следует раскрыть редактор его свойства Items и ввести одну или несколько текстовых строк – каждая строка будет соответствовать поясняющей надписи справа от переключателя.
Таблица 28Свойства компонента TСheckListBox
AllowGrayed |
Логическое свойство, которое разрешает/запрещает использовать в переключателях третье состояние cbGrayed |
BorderStyle |
Определяет тип рамки, очерчивающей компонент: bsNone – нет рамки; bsSingle – рамка толщиной в 1 пиксель |
Checked[Index:Integer] |
Содержит выбор пользователя типа Да/Нет для переключателя с индексом Index. Состояния cbUnchecked и cbGrayed отражаются как False |
Columns |
Определяет количество колонок опций |
Flat |
Логическое свойство, которое разрешает/запрещает трехмерную прорисовку окошек выбора |
Header[Index: Integer] |
Логическое свойство, запрещающее прорисовку окошка выбора для опции с номером Index. Таким образом вставляются заголовки отдельных секций |
ItemЕnabled[Index:Integer] |
Разрешает/запрещает выбор опции с индексом Index |
ItemIndex |
Содержит индекс выбранной опции (индексация опций начинается с нуля) |
Items |
Содержит опции компонента |
MultiSelect |
Если содержит True, пользователь может выбирать несколько опций |
SelCount |
Содержит количество выбранных опций компонента, если свойство MultiSelect содержит True |
Selected[Index: Integer] |
Содержит True, если опция с индексом Index выбрана |
Sorted; |
Логическое свойство, разрешающее сортировку по алфавиту надписей на переключателях |
State[Index: Integer] |
Содержит состояние переключателя с индексом Index: cbUnchecked – нет; cbChecked – да; cbGrayed – не совсем |
Для компонента определено событие OnClickCheck, которое наступает при изменении состояния любого переключателя.
procedure TForm1.FormCreate(Sender: TObject);
begin
CheckListBox1.Items.Add('Выравнивание');
CheckListBox1.Items.Add('Цвет');
CheckListBox1.ItemIndex := 2;
end;
procedure TForm1.CheckListBox1Click(Sender: TObject);
begin
if CheckListBox1.Checked[0]
then Memo1.Alignment:= taCenter
else Memo1.Alignment:= taLeftJustify;
if CheckListBox1.Checked[1]
then Memo1.Color:= clAqua
else Memo1.Color:=clBlue;
end;