Иллюстрированный самоучитель по Turbo Pascal

Вывод текста

Следующая программа иллюстрирует различные способы выравнивания относительно центра графического экрана.

Uses Graph, CRT;
var
d, r, e: Integer;
begin
{Инициируем графику}
d: = Detect; InitGraph(d,, r, ' ');
e: = GraphResult;
if e <> grOk then
WriteLn(GraphErrorMsg(e))
else
begin
{Выводим перекрестие линий в центре экрана}
Line(0,GetMaxY div 2,GetMaxX,GetMaxY div 2);
Line(GetMaxX div 2.0,GetMaxX div 2,GetMaxY);
{Располагаем текст справа и сверху от центра}
SetTextStyle(TriplexFont,HorizDir,3);
SetTextJustify(LeftText,BottomText);
OutTextXY (GetMaxX div 2, GetMaxY div 2, 'LeftText,BottomText');
{Располагаем текст слева и снизу}
SetTextJustify (RightText, TopText);
OutTextXY (GetMaxX div 2, GetMaxY div 2,'RightText, TopText');
if ReadKey=#0 then d: = ord(ReadKey);
CloseGraph
end
end.

Процедура SetUserCharSize

Изменяет размер выводимых символов в соответствии с заданными пропорциями. Заголовок:

Procedure SetUserCharSize(XI,X2,Yl,Y2: Word);

Здесь X1…Y2 – выражения типа Word, определяющие пропорции по горизонтали и вертикали.

Процедура применяется только по отношению к векторным шрифтам. Пропорции задают масштабный коэффициент, показывающий во сколько раз увеличится ширина и высота выводимых символов по отношению к стандартно заданным значениям. Коэффициент по горизонтали находится как отношение X1 к Х2, по вертикали – как отношение Y1 к Y2. Чтобы, например, удвоить ширину символов, необходимо задать X1=2 и Х2=1. Стандартный размер символов устанавливается процедурой SetTextStyle, которая отменяет предшествующее ей обращение к SetUserCharSize.

В следующем примере демонстрируется изменение пропорций уменьшенного шрифта.

Uses Graph, CRT;
var
d, r, e: Integer;
begin
{Инициируем графику}
d: = Detect;.InitGraph (d, r, '');
e: = GraphResult;
if e <> grOk then
WriteLn(GraphErrorMsg(e))
else
begin
MoveTo (0, GetMaxY div 2); SetTextStyle (SmallFont, HorizDir, 5);
SetTextJustify (LeftText, BottomText);
{Выводим сообщение стандартной высотой 5}
OutText ('Normal Width,');
{Удваиваем ширину шрифта}
SetUserCharSize (2, 1, 1, 1);
OutText (' Double Width, ');
{Удваиваем высоту, возвращаем стандартную ширину}
SetUserCharSize (I, 1, 2, 1);
OutText ('Double Height,');
SetUserCharSize (2, 1, 2, 1);
OutText (' Double Width and Height');
if ReadKey=#0 then d: = ord(ReadKey);
CloseGraph
end
end.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.