Показать сообщение отдельно
  #17  
Старый 22.07.2008, 21:14
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Замени процку:

Код:
procedure TForm1.OtvetgotovClick(Sender: TObject);

function MakeTestResult : String;
var
  C : Integer;
  T : Integer;
begin
  Result := #13#10;

  C := 0;
  For T := 1 To voprosov_v_teste Do
  Begin
    Result := Result + 'Вопрос № ' + IntToStr(T) + ' - Ответ ' + BoolToStr(RightAnswers[T]) + #13#10;
    If RightAnswers[T] Then Inc(C);
  End;
  Result := Result + 'Всего '+IntToStr(Round(100*C/voprosov_v_teste))+'% правильных ответов.';
end;

var i:integer;
begin

 for i:=1 to max_otvetov-1 do
  begin    //n 200
   if otvet.Text=vse_voprosy[nomer].otvety[i] then
     begin    //n 201

      RightAnswers[tek_vopros] := True; // !!!
      messagedlg('Ответ правильный',mtconfirmation,[mbok],0);
      otvety_na_voprosy[tek_vopros]:=true;
      tek_vopros:=tek_vopros+1;

      otvet.SetFocus;
      if tek_vopros=voprosov_v_teste+1 then
  begin  //n 202
   messagedlg('Вы закончили тест по предмету ОС ваша оценка '+inttostr(form1.resultat) + #13#10 + MakeTestResult,mtconfirmation,[mbok],0);
   student.resultat:=inttostr(form1.resultat);
   form1.zapis_v_data_base;
   close;
  end;  //k 202
  form1.vivod_voprosa;
      exit;
     end;   // k 201
  end;    // k 200
 if not(otvety_na_voprosy[tek_vopros]) then
  begin   //n 203
   messagedlg('Ответ неправильный',mtconfirmation,[mbok],0);
   RightAnswers[tek_vopros] := False; // !!!
   otvety_na_voprosy[tek_vopros]:=false;
   tek_vopros:=tek_vopros+1;

   if tek_vopros=voprosov_v_teste+1 then
  begin    //n 204
   messagedlg('Вы закончили тест по предмету ОС ваша оценка '+inttostr(form1.resultat) + #13#10 + MakeTestResult,mtconfirmation,[mbok],0);
    student.resultat:=inttostr(form1.resultat);
    form1.zapis_v_data_base;
    close;
  end;     // k 204
  form1.vivod_voprosa;
  end;     // k 203

 otvet.SetFocus;
end;
Ответить с цитированием