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;

// здесь определена максимально допустимая величина иллюстрации

// определить масштаб

if w>Form1.Image1.Picture.Width

then scaleX:=1

else scaleX:=w/Forml.Image1.Picture.Width;

if h>Forml.Image1.Picture.Height

then scaleY:=1

else scaleY:=h/Form1.Image1.Picture.Height;

if ScaleYOcaleX

then scale:=scaleY

else scale:=scaleX; // здесь масштаб определен

Form1.Image1.Top:=

Form1.Label5.Top+Forml.LabelS.Height+5;

Form1.Image1.Left:=Form1.Label5.Left;

Form1.Image1.Width:=

Round(Form1.Image1.Picture.Width*scale);

Form1.Image1.Height:=

Round(Form1.Image1.Picture.Height*scale)

Form1.Label5.Visible:=TRUE;

end;

// вывод вопроса на экран

Procedure VoprosToScr(var f:TextFile;

frm:TForm1;var vopros:integer),

Var

i:integer; code:integer; s,buf :string;

ifn:string; // файл иллюстрации

Begin

vopros:=vopros+1;

str(vopros:3,s);

frm. caption: ='Вопрос' + s;

// выведем текст вопроса

buf: = ";

Repeat

readln(f, s);

if (s[l] <> '.') and (s[l] <> '\')

then buf:=buf+s+' ';

until (s[l] ='.'} or (s[l] = '\');

frm.Labels.caption:=buf;

if s[l] = '\'

then // к вопросу есть иллюстрация

Begin

frm.Image1.Tag:=1; ifn:=copy(s,2,length(s));

Try

frm.Image1.Picture.LoadFromFile(ifn); except

on E:EFOpenError do

frm.tag:=0; end //

Try

End

else frm. Image1.Tag: =0;

// читаем варианты, ответов

for i:=1 to N_ANSWERS do begin

answer[i].caption:='';

answer[i].Width:=frm.ClientWidth-Form1.Label5.Left-5;

end; i:=l;

Repeat

buf: = ";

repeat // читаем текст варианта ответа

readln(f,s);

if (s[l]<>'.') and (s[1] <> ',')

then buf:=buf+s+' ';

until (s[1]=',') or (s[l]='.');

// прочитан альтернативный ответ

val (s[2],score[i],code);

answer[i].caption:=buf;

i:=i+l;

until s [1] = '. '; // здесь прочитана иллюстрация и альтернативные ответы

if Form1.Image1.Tag =1 // есть иллюстрация к вопросу?

then begin ScalePicture;

Forml.Image1.Visible:=TRUE;

end;

// вывод альтернативных ответов

i:=1;

while (answer[i].caption <> ") and (i <= N_ANSWERS) do

Begin

if i = 1 then

if frm.Image1.Tag =1

then answer[1].top:=frm.Image1.Top+frm.Image1.Height+5

else answer[i].top:=frm.Label5.Top+frm.Label5.Height+5

Else

answer [i]. top:=answer [i-1].

top+ answer [i-1]. height+5;

selector[i]. top:=answer [i].

top; selectorfi],visible:=TRUE;

answer [i]. visible: =TRUE; i:=i+l;

end;

end;

{$R *.DFM}

procedure TForml. FormActivate (Sender: TOb j ect);

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: