Программа для тестовых проверок знаний — страница 5
ошибке только после того, как программа пытается использовать введенные данные. Лучше, если пользователь просто не сможет ввести неправильные символы. Например, если вы хотите, чтобы пользователь мог вводить в окно редактирования 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 Название теста = Проверка
Похожие работы
- Доклады
- Рефераты
- Рефераты
- Рефераты
- Контрольные