Создание обучающей системы автоматизированного проектирования маломощных электромеханических следящих систем, страница 66

      leTrue.Text := IntToStr(StrToInt(leTrue.Text) + 1); // увеличиваем счётчик правильных ответов

      lbAnswer.Caption := 'Ответ верный!';

end

    else begin

      test_res[test_num].wrong:=test_res[test_num].wrong+1;

      leFalse.Text := IntToStr(StrToInt(leFalse.Text) + 1); // увеличиваем счётчик неправильных ответов

      lbAnswer.Caption := 'Ответ не верный!';

    end;

    //Настраиваем следующий вопрос.

    vremya:=46;

question_count:=question_count+1;

    //Пройдены все вопросы теста.

    if question_count=6 then // Задано 6 вопросов

    begin

      Timer1.Enabled:=false;

     // lbAnswer.Caption := '';

      if test_res[test_num].right < 5 then

        label3.Caption := 'Тест не пройден! Попробуйте пройти ещё раз.'

      else label3.Caption := 'Тест пройден! Нажмите кнопку "ОК" для продолжения.';

      Button1.Caption := 'ОК';

    end

    //Показываем следующий вопрос.

else

      ShowQuestion();

  end // if Button1.Caption = 'Ответить' then

  else begin // Кнопка Ок

      Form2.Close;

      Form1.Enabled:=true;

      Form1.PageControl1.ActivePageIndex:=1; // Только для теста 5 - страница 1

      if test_num <>5 then Form1.PageControl1.ActivePageIndex:=test_num - 1; // Переход на страницы для других тестов

      Form1.Show;

      Button1.Caption := 'Ответить';

  end;

end;

procedure TForm2.Timer1Timer(Sender: TObject);

begin

 vremya:=vremya-1;

 label2.Caption:='Осталось '+IntToStr(vremya)+' сек.';

 if vremya = 44 then  lbAnswer.Caption := ''; // Очищаем метку правильности ответа

 //Жмём кнопку 'Ответить', если время кончилось.

if vremya=0 then

  begin

   vremya:=45;

   Form2.Button1Click(Timer1);

  end;

end;

procedure TForm2.FormShow(Sender: TObject);

begin

 label3.Caption := ''; // Метка - пройден тест или нет

 vremya:=45; //Задаём время.

 Timer1.Enabled:=true; //Включаем тамер.

question_count:=1;

 ShowQuestion();

end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);

begin

 if (test_num=1) and (test_res[1].right=5) then

 begin

  Form1.BaseSheet.Enabled:=true;

  Form1.PageControl1.TabIndex:=1;

 end

 else if (test_num=2) and (test_res[2].right=5) then

 begin

  Form1.RedSheet.Enabled:=true;

  Form1.PageControl1.TabIndex:=2;

 end

 else if (test_num=3) and (test_res[3].right=5) then

 begin

  Form1.SensorSheet.Enabled:=true;

  Form1.PageControl1.TabIndex:=3;

 end

 else if (test_num=4) and (test_res[4].right=5) then

 begin

  Form1.LahSheet.Enabled:=true;

  Form1.ShemeSheet.Enabled:=true;

  Form1.PageControl1.TabIndex:=4;

 end;

end;

procedure TForm2.FormCreate(Sender: TObject);

begin

 //Сбрасываем результаты теста.

 test_res[1].right:=0;

test_res[2].right:=0;

 test_res[3].right:=0;

 test_res[4].right:=0;

 test_res[5].right:=0;

 {Заполняем массив вопросов. Вообще-то тоже таблицей БД надо было.}

 //ТЕСТ 1. (Следящие ситемы)

 tests[1][1].Variants[1] := 'по назначению';

 tests[1][1].Variants[2] := 'по принципу действия';

 tests[1][1].Variants[3] := 'по принципу построения';

 tests[1][1].Variants[4] := 'по характеру передающего сигнала';

 tests[1][1].Question:='К какому признаку классификации относятся позиционные следящие системы ?';

tests[1][1].Answer:=2;

 tests[1][2].Variants[1] := 'Непрерывные';

 tests[1][2].Variants[2] := 'Несущие';

 tests[1][2].Variants[3] := 'Релейно-импульсные';

 tests[1][2].Variants[4] := 'Гармонические';

 tests[1][2].Question:='Какой класс следящих систем классифицируемых в зависимости от характера сигналов лишний?';

 tests[1][2].Answer:=4;

 tests[1][3].Variants[1] := 'Требования, предъявляемые к системе, и характер входного сигнала';

 tests[1][3].Variants[2] := 'Характер входного сигнала';

 tests[1][3].Variants[3] := 'Характер входного и выходного сигнала';

 tests[1][3].Variants[4] := 'Требования, предъявляемые к корректирующему устройству';