Усовершенствование программы
{$R *.DFM} procedure TForml. FormActivate (Sender: TObject); begin ResetForm (Forml); if ParamCount = 0 then begin Label3 .font .color: =clRed; Label5 .caption: = 'He задан файл вопросов теста.1; Buttonl .caption: = ' Ok '; Buttonl.tag: = 2; Buttonl. Enabled: =TRUE end else 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.