Дополнительное задание
Практика №3
Разработка проекта Тест по Delphi
Постановка задачи
Создать программу, с помощью которой можно выполнить:
После запуска программы появляется изображение аналогичное рисунку 25.2. Пользователь по своему усмотрению выбирает один из переключателей в группе. В зависимости от правильности ответов появляется одно из сообщений «Плохо!», «Удовлетворительно!», «Хорошо!», «Отлично!».
Рисунок 25.2
Пояснения: новыми в этой программе являются группа переключателей RadioGroup, компонент CheckBox и компонент Panel на странице палитры компонентов Стандартные (Standard).
План разработки программы
1. Открыть новый проект. Дать имя форме Тест по Delphi.
2. Сохранить проект в отдельной папке под именем Pr6.pas и Project6.dpr
3. Разместить в форме компоненты в соответствии с рисунком 25.3.
Рисунок 25.3
4. Выполнить следующие действия:
Выделенная компонента | Окно инспектора объектов | Имя свойства, события | Действие |
Label1 | Параметры (Properties) | Caption | С помощью какой клавиши запускают программу? |
Autosize | False | ||
WordWrap | True | ||
Height | |||
Width | |||
Left | |||
Label2 | Параметры (Properties) | Caption | Какое свойство определяет вид компонента BitBtn? |
Autosize | False | ||
WordWrap | True | ||
Height | |||
Width | |||
Left | |||
Label3 | Параметры (Properties) | Caption | Сколько окон можно увидеть после загрузки интерфейса Delphi? |
Autosize | False | ||
WordWrap | True | ||
Height | |||
Width | |||
Left | |||
Label4 | Параметры (Properties) | Caption | Главный модуль представляет собой файл с расширением: |
Autosize | False | ||
WordWrap | True | ||
Height | |||
Width | |||
Left | |||
Label5 | Параметры (Properties) | Caption | С какого слова начинается главный модуль? |
Autosize | False | ||
WordWrap | True | ||
Height | |||
Width | |||
Left | |||
BitBtn1 | Параметры (Properties) | Kind | bkClose |
Caption | Выход | ||
События (Events) | OnClick | Close; | |
CheckBox1 | Параметры (Properties) | Caption | Начало работы |
Panel1 | Параметры (Properties) | Caption | Удалить название |
RadioGroup1 | Параметры (Properties) | Caption | Удалить название |
Columns (количество отображаемых колонок) | |||
Items | Вызвать StringListEditor, дважды щелкнув мышкой рядом со свойством Items. Ввести 5 строк: F2 F5 F7 F9 F12 Введенный текст сохранить в файле test1.txt | ||
RadioGroup2 | Параметры (Properties) | Caption | Удалить название |
Columns | |||
Items | Ввести 5 строк: Caption Color Kind Enabled Name Введенный текст сохранить в файле test2.txt | ||
RadioGroup3 | Параметры (Properties) | Caption | Удалить название |
Columns | |||
Items | Ввести 5 строк: Введенный текст сохранить в файле test3.txt | ||
RadioGroup4 | Параметры (Properties) | Caption | Удалить название |
Columns | |||
Items | Ввести 5 строк: .res .exe .dpr .cfg .pas Введенный текст сохранить в файле test4.txt | ||
RadioGroup5 | Параметры (Properties) | Caption | Удалить название |
Columns | |||
Items | Ввести 5 строк: Unit Program Begin Var Function Введенный текст сохранить в файле test5.txt |
5. Для суммирования набираемых пользователем баллов выполните следующие действия:
Выделенная компонента | Окно инспектора объектов | Имя свойства, события | Действие |
RadioGroup1 | События (Events) | OnClick | Sum:=0; If RadioGroup1.ItemIndex=3 Then Sum:=Sum+1; Пояснение: Индекс первого переключателя равен 0. Правильный ответ содержит переключатель с меткой F9, имеющий индекс 3. |
Переменную Sum необходимо объявить в разделе Var перед разделом implementation.
6. Вставьте в обработчик событий RadioGroup2Click, RadioGroup3Click, RadioGroup4Click, RadioGroup5Click аналогичные коды, с учетом правильных ответов, но без обнуления переменной Sum, так как оно необходимо лишь один раз перед началом суммирования.
7. Выведем на контрольную панель итоговое сообщение в зависимости от набранной суммы баллов.
Выделенная компонента | Окно инспектора объектов | Имя свойства, события | Действие |
RadioGroup5 | События (Events) | OnClick | Case Sum of 0..2:Panel1.Caption:=’Плохо!’; 3:Panel1.Caption:=’Удовлетворительно!’; 4:Panel1.Caption:=’Хорошо!’; 5:Panel1.Caption:=’Отлично!’; End; |
8. Вывести сообщение об окончании тестирования, добавив в обработчик событий RadioGroup5Click код:
ShowMessage (‘Конец теста!’);
9. Сохранить проект окончательно, запустить и протестировать его.
Дополнительное задание
1. Для контроля правильности работы программы вывести на панель (Panel2) набранную пользователем сумму баллов.
Подсказка.В форме разместить компоненты Label6 и Panel2.
Выделенная компонента | Окно инспектора объектов | Имя свойства | Действие |
Label6 | Параметры (Properties) | Caption | Количество правильных ответов |
Height | |||
Width | |||
Panel2 | Параметры (Properties) | Caption | Удалить название |
Height | |||
Width |
Заголовку соответствующей панели присвоить значение IntToStr (sum).
2. Запустите программу и убедитесь, что верная сумма баллов получается лишь при последовательном выборе переключателей сначала из RadioGroup1, затем RadioGroup2 и т.д. Если порядок нарушен, то результат может быть неверным. Чтобы этого не случилось, вставьте дополнительную кнопку и сделайте подсчёт баллов только после её нажатия (кнопка Проверить (bkAll)).
3. Сделайте повторный запуск программы (сброс значений). Для этого в форме расположите дополнительную кнопку Повторить (bkRetry).
4. Для наглядности вывести результат разным цветом.
Подсказка. В оператор Case при выборе результата задать свойству font.Color выбранный цвет. Например: Panel1.Font.Color:=clRed;
5.Сделать доступным группы переключателей RadioGroup1 и т.д. только при включенном CheckBox1. Для этого свойству Enabled компонентов RadioGroup1, RadioGroup2 и т.д. задать значение false.
А в обработчик событий CheckBox1. Click вставить код:
If CheckBox1.Checked=false then
RadioGroup1.Enabled:=false else
RadioGroup1.Enabled:=true;
В этой же процедуре вставить аналогичные коды для RadioGroup2, RadioGroup3, RadioGroup4, RadioGroup5, а также для кнопок Проверить и Повторить.
Примерный вид готового приложения: