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

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

ошибке только после того, как программа пытается использовать введенные данные. Лучше, если пользователь просто не сможет ввести неправильные символы. Например, если вы хотите, чтобы пользователь мог вводить в окно редактирования Edit только цифры и символ точки, вы можете в обработчик события OnKeyPress этого компонента вставить оператор: if not (Key in ['0'..'9', ',']) then Key := #0; Этот оператор подменит все символы, кроме цифр и запятой, нулевым

символом, который не занесется в текст окна Edit. Внешний вид формы (Form2) в дизайнере форм. Иерархия расположения компонентов на форме приведена на рис.1. . Рисунок 1 - Иерархия расположения компонентов на форме 2.3 Функции Ниже я приведу описание функций: 1) функция, ss2nn которая переводит секунды в минуты + секунды в строковом формате (необходимо для подсчета времени прошедшего с начала тестирования): function TForm2.ss2nn(Seconds: Integer): String; var nMin, nSec:

Integer; begin {Проверяем, меньше чем 1/Min} if Seconds < 60 then Result := '0 минут ' + IntToStr(Seconds) + ' секунд' else begin {Определяем минуты} nMin := Seconds div 60; {Определяем секунды} nSec := Seconds - (nMin * 60); {Возвращаем результат} Result := IntToStr(nMin) + ' минут ' + IntToStr(nSec) + ' секунд'; end; end; Функции надо передать количество секунд и в результате мы получим значение типа string. Например, если мы передадим функции число 70, то получим в результате 1 минут 10 секунд. 2) процедура ShowQuestion - функция,

которая загружает текст вопроса и варианты ответов, а так же показывает текст вопроса и варианты ответов на текстовых метках. procedure TForm2.ShowQuestion; var Count, i: Integer; begin if (QuestNum > QuestCount) and (QuestNum > 0) then begin { Если номер текущего вопроса больше чем должно быть показано и кол-во вопросов >0 то выполняем следующее....} Form3 := TForm3.Create(self);//создаем форму с результатами тестирования res := (Scores * 100) div QuestCount;// узнаем кол-во правильных ответов Form3.Gauge1.Progress :=

res; // выводим правильные ответы на графике в % Form3.Gauge2.Progress := 100-res; //выводим кол-во неправильных ответов //сколько всего вопросов.... Form3.Label5.Caption := 'Вопросов в тесте: '+IntToStr(QuestCount); //пишем на label кол-во правильных ответов Form3.Label3.Caption := IntToStr(Scores); //тоже самое, только неправильные Form3.Label4.Caption := IntToStr(Wrong); Timer1.Enabled:=False; //выключаем таймер времени Form3.TimeLabel.Caption:=TimeLabel.Caption; //выводим время на label времени Form3.ShowModal;// наконец показываем форму с

результатами Form2.close; //закрываем форму с вопросами end; Если данное условие не выполняется, то… Рассмотрим это фрагмент функции более подробно. Для загрузки вопросов я использовал класс TIniFile – этот класс используется для работы с ini-файлами[1]. Список вопросов и ответов хранится в специально сформированном файле Test.ini, откуда программа их загружает. Вот вырезка из файла Test.ini: [Тест] Количество Вопросов=15 Название теста = Проверка