• Иллюстрированный самоучитель по 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, чтобы сообщить об этом редактору.