Иллюстрированный самоучитель по Delphi 7 для начинающих

Усовершенствование программы

// определить масштаб
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;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.