Программа для тестовых проверок знаний — страница 6

  • Просмотров 4153
  • Скачиваний 488
  • Размер файла 18
    Кб

знаний по русскому языку [Вопрос №1] Текст вопроса = Вставьте проверяемые безударные гласные А или О. Укажите слова с буквой О. Текст кнопки 1 = ХВ__ТАТЬ Текст кнопки 2 = К__РАТЕЛЬНЫЙ Текст кнопки 3 = НАК__ПИТЬ ДЕНЬГИ Текст кнопки 4 = НАСЛ__ЖДАТЬСЯ Правильный вариант = 3 ... Ниже приведена процедура загрузки вопроса и вариантов ответов: //загружаем текст вопроса Label1.Caption := Ini.ReadString('Вопрос №' + inttostr(QuestNum), 'Текст вопроса', 'Вопрос отсутствует');

//загружаем варианты ответов RadioButton1.Caption := Ini.ReadString('Вопрос №' + inttostr(QuestNum), 'Текст кнопки 1', 'ERROR'); RadioButton2.Caption := Ini.ReadString('Вопрос №' + inttostr(QuestNum), 'Текст кнопки 2', 'ERROR'); RadioButton3.Caption := Ini.ReadString('Вопрос №' + inttostr(QuestNum), 'Текст кнопки 3', 'ERROR'); RadioButton4.Caption := Ini.ReadString('Вопрос №' + inttostr(QuestNum), 'Текст кнопки 4', 'ERROR'); {Процедура загрузки завершена} end; В данной функции метод ReadString класса TIniFile собственно и производит загрузку начальных значений меток (label) с

вопросом и вариантами ответов. 3 Процедуры 1) Процедура – обработчик события нажатия на кнопку «Начать тест»(Button1): procedure TForm2.Button1Click(Sender: TObject); begin Count:=0; Timer1.Enabled:=True; Label10.Visible:=True; TimeLabel.Visible:=True; BitBtn1.Visible := true; Panel3.Visible := true; Button1.Visible := false; Label9.Visible:=True; BitBtn1.OnClick(self); end; Во время выполнения этой процедуры происходит показ всех нужных для правильной работы программы компонентов, запуск таймера, а также скрытие самой кнопки «Начать тест». 2)

процедура – обработчик события нажатия на кнопку «Ответить»(Button): procedure TForm2.BitBtn1Click(Sender: TObject); var Answer, CA: Integer; begin Answer := Ini.ReadInteger('Вопрос №' + inttostr(QuestNum), 'Правильный вариант', -1); if Answer < 0 then Exception.Create('В файле с вопросами не написан правильный вариант'); ca := 0; if RadioButton1.Checked then Ca := 1; if RadioButton2.Checked then Ca := 2; if RadioButton3.Checked then Ca := 3; if RadioButton4.Checked then Ca := 4; if Ca = Answer then inc(Scores) else inc(Wrong); inc(QuestNum); Label6.Caption := 'Номер вопроса: ' + IntToStr(QuestNum); Label8.Caption := 'Правильных

ответов: ' + IntToStr(Scores); Label7.Caption := 'Неправильных ответов: ' + IntToStr(Wrong); ShowQuestion; end; Читаем Правильный ответ из рабочего ini файла программы: Answer := Ini.ReadInteger('Вопрос №' + inttostr(QuestNum), 'Правильный вариант', -1); Собственно определяем правильный ответ или нет if Ca = Answer then inc(Scores) else inc(Wrong); Оператор Inc увеличивает значение указанной переменной на 1. Если да то +1 к правильным если нет, то +1 к неправильным. 3.1 Процедура работы таймера времени procedure

TForm2.Timer1Timer(Sender: TObject); begin Count:=Count+1; TimeLabel.Caption:=ss2nn(Count); end; Начальное значение переменной Count – 0, с каждой секундой значение переменной увеличивается на 1, затем функцией ss2nn значение переводится в секунды + минуты (если нужно) и результат выводится на TimeLabel. На рисунке 2 приведена иллюстрация, демонстрирующая работу программы. Рисунок 2 – Внешний вид программы 3.2 Форма с результатами тестирования (Form3/Unit3) После того как программа