Усовершенствование программы
// установка формы в исходное состояние
Procedure ResetForm(frm:TForm1);
var
i:integer; begin
for i: = 1 to N_ANSWERS do begin
answer[i].width: = frm.ClientWidth-answer[i].left-5;
answer[i].Visible: = FALSE; Selector[i].Visible: = FALSE;
end;
frm. Label5.width: = frm.ClientWidth-frm.Label5.left-5;
frm. Image1.Visible: = False;
end;
// определение достигнутого уровня
procedure Itog(suirana:integer;frm:TForm1);
var
i:integer; buf:string;
begin buf: = ";
str(summa:5,buf); buf: = 'Результаты тестирования'+chr(13)
+'Всего баллов: '+buf; i: = 1;
while (summa < level[i]) and (i<N_LEVEL) do
i: = i+l;
buf: = buf+chr(13)+mes[i];
frm.Labels.caption: = buf;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: integer; begin
// создадим пять меток для вывода вопроса и альтернативных ответов
for i: = l to N_ANSWERS do
begin
answer[i]: = TLabel.Create(self);
answer[i].Parent: = Forml;
answer[i].Left: = 36;
answer[i].Wordwrap: = True;
end;
// создадим переключатели для выбора ответа
for i: = l to N_ANSWERS+1 do
begin
selector[i]: = TRadioButton.Create(self);
selector[i].Parent: = self;
selector[i].Caption: = '';
selector[i].Width: = 17;
selector[i].Left: = 16;
selector[i].Visible: = False;
selector[i].Enabled: = True;
selector[i].OnClick: = SelectorClick;
end;
ResetForm(Forml); end;
// вывод начальной информации о тесте
procedure info(var f:TextFile;l:TLabel);
var
s,buf:string; begin
buf: = ' '; repeat
readln(f,s); if s[l]<>'.'
then buf: = buf+s+' ';
until s[l] ='.';
Form1.Labels.caption: = buf;
end;
// прочитать информацию об оценках за тест
Procedure GetLevel(var f:TextFile);
var
i:integer; buf:string;
begin // заполняем значения глобальных массивов i: = 1;
repeat
readln(f,buf); if buf[1] <> '.' then
begin mes[i]: = buf; readln(f,level[i]); i: = i+1;
end;
until buf[1]='.';
end;
// масштабирование иллюстрации
Procedure ScalePicture;
var
w,h:integer; // максимально допустимые размеры картинки
scaleX:real; // коэф. масштабирования по X
scaleY:real; // коэф. масштабирования по Y
scale:real; // общий коэф. масштабирования
i:integer; begin
// вычислить максимально допустимые размеры картинки
w: = Form1.ClientWidth-Form1.Labels.Left;
h: = Form1.ClientHeight
– Form1.Panel1.Height – 5
– Form1.Label5.Top
– Forml.Label5.Height – 5;
for i: = 1 to N_ANSWERS do
if answer[i].Caption <> ''
then h: = h-answer[i].Height-5;
// здесь определена максимально допустимая величина иллюстрации