Begin
fn:=ParamStr (1);
assignf ile (f, fn);
{$!-} reset (f);
if IOResult=0 then
Begin
Inf <> (f, Label3);
GetLevel(f);
end;
summa:=0;
end;
end;
procedure TForm1. ButtonlClick (Sender: TObject)
Begin
case Button1.tag of
0: begin
Button1.caption:='Дальше';
Buttonl.tag:=1;
Selector[N_ANSWERS+1].Checked:=TRUE; // вывод первого вопроса
Buttonl.Enabled:=False;
ResetForm(Forml);
VoprosToScr(f,Forml,vopros)
end;
1: begin // вывод остальных вопросов
summa:=summa+score[otv];
Selector[N_ANSWERS+1].Checked:=TRUE;
Button1.Enabled:=False; ResetForm(Form1);
if noteof(f)
then VoprosToScr(f,Forml,vopros) else
Begin
closefile(f); Button1.caption:='Ok';
Forml.сарtiоn:='Результат';
Buttonl.tag:=2; Buttonl.Enabled:=TRUE;
Itog(summa,Form1);
end;
end;
2: begin // завершение работы
Form1.Close;
end;
end;
end;
// щелчок на кнопке выбора ответа
procedure TForml.SelectorClick(Sender: TObject);
var
i: integer;
Begin
while selector[i].Checked = FALSE do
i:=i+l;
otv:=i;
Buttonl.enabled:=TRUE;
end;
End.
По сравнению с первым вариантом программа Тест, версия 2 обладает существенным преимуществом. Для ее модернизации, например для увеличения количества альтернативных ответов, достаточно изменить только описание именованной константы N_ANSWERS.