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

Текст программы

until buf [1]='.';
end;
// масштабирование иллюстрации
Procedure ScaleImage(Imagel:TImage);
var
w,h:integer; // максимально допустимые размеры картинки
scaleX:real; // коэф. масштабирования по X
scaleY:real; // коэф. масштабирования по Y
scale:real; // общий коэф. масштабирования
begin
// вычислить максимально допустимые размеры картинки
w: = Form1.ClientWidth-10;
h: = Form1.ClientHeight
– Form1.Panel1.Height – 5
– Form1.Label5.Top
– Form1.Label5.Height – 5;
if Form1.Label1.Caption <> ''
then h: = h-Form1.Label1.Height-5;
if Form1.Label2.Caption <> ''
then h: = h-Form1.Label2.Height-5;
if Forml.Label3.Caption <> ''
then h: = h-Form1.Label3.Height-5;
if Forml.Label4.Caption <> "
then h: = h-Form1.Label4.Height-5; // определить масштаб
if w>Imagel.Picture.Bitmap.Width
then scaleX: = l
else scaleX: = w/Imagel.Picture.Bitmap.Width;
if h>Imagel.Picture.Bitmap.Height
then scaleY: = l
else scaleY: = h/Image1.Picture.Bitmap.Height;
if ScaleY<ScaleX
then scale: = scaleY
else scale: = scaleX; // здесь масштаб определен
Image1.Top: = Form1.Label5.Top+Form1.Labels.Height+5;
Image1.Width: = Round(Image1.Picture.Bitmap.Width* scale);
Image1.Height: = Round(Image1.Picture.Bitmap.Height*scale);
end;
// вывод вопроса на экран
Procedure VoprosToScr(var f:TextFile;frm:TForm1;var vopros:integer)
var
i:integer;
code:integer;
s,buf:string;
ifn:string; // файл иллюстрации
begin
vopros: = vopros+l;
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[1] <> '\'
then Form1.Image1.Tag: = 0 else
// к вопросу есть иллюстрация
begin
Form1.Image1.Tag: = 1;
if n: = copy(s,2,length(s));
try
Form1.Image1.Picture.LoadFromFile(ifn)
except
on E:EFOpenError do
frm.tag: = 0; end; // try end;
// читаем варианты ответов
i: = l;
repeat
buf: = ";
repeat // читаем текст варианта ответа
readln(f,s);
if (s[1]<>'. ') and (s[l] о ', ')
then buf: = buf+s+' ';
until (s[l]=',')or(s[1]='.'); // прочитан альтернативный ответ
val(s[2],score[i],code);
case i of
1: frm.Label1.caption: = buf;
2: frm.Label2.caption: = buf;
3: frm.Label3.caption: = buf;
4: frm.Label4.caption: = buf;
end;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.