Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
230401_MU_-_Osnovy_algoritmizatsii_i_programmir...docx
Скачиваний:
12
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Практическое занятие №34 Разработка оконного приложения с несколькими формами. Разработка проекта Halfbottle.

Цель работы: научиться создавать оконное приложение с несколькими формами

Теоретическая часть

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

Разработать программу, с помощью которой пользователь мог бы выполнить следующее. После запуска программы появляется изображение, аналогичное рис.1. Пользователь по своему усмотрению выбирает один переключатель в группе. Каждому переключателю соответствует определенный балл. В зависимости от суммы набранных баллов появляется одно из сообщений “Вы пессимист”, “Вы реалист” или “Вы оптимист”.

Пояснения. Новыми в этом пректе являются группа переключателей RadioGroup и оператор вывода сообщений ShowMessage.

Рисунок 1.

Практическая часть

Ход работы

1. Разместить на форме компоненты согласно рис.2 и присвоить заголовки меткам и панелям.

2. Выделить компонент RadioGroup1, найти в Object Inspector’e свойство Caption и удалить заголовок.

Свойству Columns, определяющему количество колонок, в оторые будут отображаться переключатели, присвоить значение 5.

Вызвать String List Editor, дважды щелкнув мышкой рядом со свойством Items, ввести 5 строк со значениями 1, 2, 3, 4 и 5 соответственно. Сохранить эти строки под именем, например, t1.txt .

3. Аналогичные действия проделать с остальными компонентами RadioGroup.

4. Чтобы суммировать набираемые пользователем баллы, вобработчик события RadioGroup1.OnClick вставить код:

with RadioGroup1 do

if ItemIndex>=0 then sum:=sum+ItemIndex+1;

Единицу необходимо прибавлять, т.к. индекс первого переключателя равен 0, но соответствует 1 баллу. Целочисленную переменную sum необходимо описать в разделе var.

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

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

casesumof

4..9: Panel1.Caption:=‘Выпессимист’;

Рисунок 2.

10..15: Panel1.Caption:=‘Вы реалист’;

16..20: Panel1.Caption:=‘Выоптимист’;

end;

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

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

В результате выполнения этого оператора появится информационное окно со словами ‘Конец теста’ и единственной кнопкой Ok (cм. рис.3).

Рисунок 3

Упражнения. Совершенствование проекта.

1. После нажатия кнопки Ok в информационном окне сделать недоступными все RadioGroup, а все переключатели в них - невыбранными.

Подсказка. Свойствам Enabled всех RadioGroup присвоить значение False, а свойствам ItemIndex - значение -1.

2. Для контроля правильности работы программы вывести на панель набранную пользователем сумму баллов.

Подсказка. Заголовку соответствующей панели присвоить значение IntToStr(sum).

3. Запустить программу и убедиться, что верная сумма баллов получается лишь при последовательном выборе переключателей сначала из RadioGroup1, затем из RadioGroup2 и т.д. Если порядок был нарушен, или пользователь, изменив решение, выбрал другой переключатель в одной и той же группе, то результат будет неверным. Чтобы этого не случалось, сделать доступной только ту группу переключателей, в которой необходимо сделать выбор.

Подсказка. Первоначально свойству Enabled всех RadioGroup, кроме RadioGroup1, присвоить значение False. Вобработчик события RadioGroup1Click добавить код, присваивающий свойству Enabled RadioGroup2 значение True и т.д.

4. Сделать возможным повторный запуск программы.

Подсказка. Разместить на форме кнопку Button1, свойству Caption которой присвоить значение Retry, а вобработчик события Button1Click вставить код, делающий доступной RadioGroup1.