Лабораторная работа 4

Разработка проекта «Справочник»

Новыми в этой работе являются:

  TRadioButton (Переключатель) позволяет выбрать только одну опцию из нескольких. Переключатели всегда используются группами. Когда пользователь выбирает следующий переключатель, то выделение с текущего переключателя автоматически снимается, таким образом, в группе выделен только один переключатель. В форме размещается несколько переключателей, и во время проектирования один из переключателей желательно включить, а все остальные по умолчанию оставить выключенными.

  TRadioButton - зависимые переключатели, предназначенные для выбора одного из нескольких взаимоисключающих решений. На форму (точнее, в компонент-контейнер) помещается по меньшей мере два таких компонента.

Они могут иметь только два состояния, определяемых свойством Сhecked. Если в одном компоненте это свойство принимает значение True, во всех других компонентах, расположенных в том же контейнере, свойства Сhecked принимают значения False.

  Помимо свойства Checked компонент TRadioButton имеет еще одно специфичное свойство - Alignment, аналогичное такому же свойству TCheckBox. Как и в TCheckBox, программист не может изменять размеры и цвет круглого окошка компонента.

TRadioGroup - группа зависимых переключателей.

Компонент класса TRadioGroup представляет собой специальный контейнер, предназначенный для размещения зависимых переключателей класса TRadioButton. Каждый размещаемый в нем переключатель помещается в специальный список Items и доступен по индексу, что упрощает обслуживание группы.

Свойства компонента:

property Columns: Integers;     -   определяет количество столбцов переключателей

property Itemlndex: Integer;    -  содержит индекс выбранного переключател

property Items: TStrings;       -    содержит список строк с заголовками элементов.     

 

После размещения компонента на форме он пуст. Чтобы создать в нем хотя бы один переключатель, следует раскрыть редактор списка Items и ввести хотя бы одну строку: строки Items используются как поясняющие надписи справа от переключателей, а их количество определяет количество переключателей в группе. Заметим также, что после создания компонента его свойство Itemlndex по умолчанию имеет значение -1, это означает, что ни один переключатель в группе не выбран. Если в момент появления компонента на экране в каком-то переключателе выбор уже должен быть установлен, необходимо на этапе конструирования с помощью окна Инспектора объектов или программно (например, в обработчике OnActivate формы) установить в свойство ItemIndex номер соответствующего переключателя (нумерация начинается с 0). Это же свойство позволяет программе проанализировать выбор пользователя, например:

case RadioGroupl.Itemlndex of

0: ...; //Выбран 1-й переключатель

1: ...; //Выбран 2-й переключатель

else

..... //Не выбран ни один переключатель

end;

 

ShowMessage – процедура вывода сообщений, аргументом которой является некоторое сообщение, заключенное в одинарных кавычках.    MessageDlg – функция с четырьмя аргументами:

   1. Сообщение, которое нужно отобразить в одинарных кавычках.

   2. Тип диалогового окна – константы (mtWarning, mtError, mtInformation, mtConformation), определяющие специальную пиктограмму и заголовок

диалогового окна

   3. Список констант в квадратных скобках, определяющих присутствующие в окне кнопки. Возможные значения – mbYes, mbNo, mbCancel, mbHelp.

   4. Число, с которым ассоциирована тема справки. Оно отлично от нуля,если в окне присутствует кнопка mbHelp, а программа имеет связанный с ней файл справки Windows.

   Функция MessageDlg возвращает константу, определяющую нажатую пользователем кнопку.

Постановка задачи

Создать программу, выполняющую следующие действия.

После запуска программы появляется главная форма. Пользователь по своему усмотрению выбирает один из переключателей в группе. В зависимости от правильности ответов появляется одно из сообщений "Плохо", "Удовлетворительно", "Хорошо", "Отлично".

 

Главная форма

Приведем пример для оформления одного вопроса для компонентов RadioGroup 1

Выделенный

объект

Вкладка

окна

Object

Inspector

Имя

свойства/

Имя

события

Значение/Действие

 

Label1

Properties

Caption

Первая советская вычислительная машина

Label2

Properties

Caption

Основоположник алгебры логики

Label3

Properties

Caption

Объем блока начальной загрузки

Label4

Properties

Caption

Автор первого счетного устройства

Label5

Properties

Caption

Энергозависимая память

RadioGroup1

Properties

Caption

удалить заголовок

Columns

5

Items

вызвать String List Editor, дважды

щелкнув мышкой рядом со свойством

Items. Ввести 5 строк:

Урал-1

М-20

ЭВ-60

МЭСМ

БЭСМ

введенный текст сохранить в файле t1.txt.

 

 

 

4. Для суммирования набираемых пользователем баллов выполните следующие действия:

 

 

Выделенный

объект

Вкладка

окна

Object

Inspector

Имя

свойства/

Имя

события

Значение/Действие

 

RadioGroup1

Events

OnClick

sum:=0;

IfRadioGroup1.ItemIndex=3 Then

sum:=Sum+1

пояснение:

Индекс первого переключателя равен 0.

Правильный ответ содержит

Переключатель сметкой МЭСМ,

имеющий индекс 3.

 

 

Целочисленную переменную sum необходимо объявить в разделе Var перед разделом implementation.

5.Вставить в обработчик событий RadioGroup2.OnClick, RadioGroup3.OnClick,RadioGroup4.OnClick,RadioGroup5.OnClick аналогичные коды, с учетом правильных ответов, но без обнуления переменной sum, так как оно необходимо лишь один раз перед началом суммирования.

6. Выведем на контрольную панель итоговое сообщение в зависимости от набранной суммы баллов.

                                 

Выделенный

объект

Вкладка

окна

Object

Inspector

Имя

свойства/

Имя

события

Значение/Действие

 

RadioGroup1

Events

OnClick

Case sum of

0..2: Panel1.Caption:='Плохо!';

3: Panel1.Caption:='Удовлетворительно!';

4: Panel1.Caption:='Хорошо!';

5: Panel1.Caption:='Отлично!';

 end;

 

 

7. Вывести сообщение об окончании тестирования, добавив в обработчик событий RadioGroup5.OnClick код:

ShowMessage('Конец теста');

Задания для самостоятельного выполнения

1. Разработать тест, состоящий из 10 вопросов, по следующим темам: «Программирование», «Кодирование информации», «Устройство компьютера», «Компьютерные сети», «Алгебра логики»

2. Разработать проект «Меню ресторана», где представлен ассортимент блюд и их цены. При заказе выдается счет сделанного заказа.