Усовершенствование программы
// определить масштаб 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;