HOME ПРИМЕРЫ THANKS НОВИЧКАМ ДОКИ LINKS JavaScript Mail


 
В этот день много лет назад...
26 ноября. В 1724 году (300 лет назад) - По приказу Пктра I за взятки и любовную связь с Екатериной казнят камергера императорского двора Виллима Монса.
 
 

Turbo Pascal Documentation

Процедура OutText

Модуль Graph


     Функция: Пересылает строку на устройство  вывода  в  то
место, в котором находится текущий указатель.
     Описание: ОutТехt(строка : string)
     Примечания: Параметр "строка" выводится в месте  распо-
ложения  текущего  указателя.  При этом используются текущие
параметры выравнивания. Если строка  слишком  длинная  и  не
умещается  на экране или в текущей области просмотра, то она
усекается. Если активен  шрифт,  используемый  по  умолчанию
(шрифт  с побитовым отображением), а строка слишком велика и
не умещается на экране, то она не выводится.
     В данной процедуре  используется  шрифт,  установленный
процедурой SetTextStyle. Чтобы обеспечеить совместимость вы-
полняемого кода при использовании  нескольких  шрифтов,  для
определения  размеров  строки  используйте  вызовы  процедур
ТехtWidth и ТехtHeight.
     Процедура OutText использует параметры вывода, установ-
ленные  процедурой SetTextJustify (выравнивание, центрирова-
ние, вращение на 90 градусов и т.д.).
     Текущий указатель изменяется процедурой OutText  только
в  том случае, если направление вывода текста горизонтальное
и задано выравнивание по левой границе.  Направление  вывода
текста  (горизонтальное или вертикальное) задается с помощью
процедуры SetTextStyle, а выравнивание - с помощью процедуры
SetTextJustify (текущий указатель слева от строки, центриру-
ется или расположен справа от строки, записывается наж стро-
кой, под строкой).
     Если параметр горизонтального выравнивания текста,  ус-
тановленный  с  помощью процедуры SetTextJustify, равен Cen-
terText или RightText, то  Y  элементов  текущего  указателя
(СРY) будут смещены следующим образом:

     CPY := CPY + TextHeight(TextString)

     Если параметр горизонтального выравнивания текста,  ус-
тановленный  с помощью процедуры SetTextJustify, равен Left-
Text, то Х элементов текущего указателя (СРХ) будут  смещены
следующим образом:

     CPX := CPX + TextWidth(TextString)

     В следующем примере в блоке 1 выводится ABCDEF и  теку-
щий  укахатель перемещается (текст выводится горизонтально и
выравнивается слева), в блоке 2 выводится ABC а DEF  записы-
вается  справа над этим текстом, так как текст выравнивается
справа, аналогично, в блоке 3 выводится текст ABC и над  ним
справа выводится DEF (так как текст выводится вертикально).

  program CPupdate;
  uses Graph;
  var
    Driver, Mode : integer;
  begin
    Driver := Detect;
    InitGraph(Driver, Mode, '');
    if GraphResult < 0 then
       Halt(1);
   { блок 1 }
   MoveTo(0, 0);
   SetTextStyle(DefaultFont, HorizDir, 1) { разм. симв. =1 }
   SetTextJustify(LeftText, TopText);
   OutText('ABC');                    { CP изменяется }
   OutText('DEF');                    { СР изменяется }
   { блок 2 }
    MoveTo(100, 50);
   SetTextStyle(DefaultFont, HorizDir, 1) { разм. симв. =1 }
   SetTextJustify(RightText, TopText);
   OutText('ABC');                    { CP изменяется }
   OutText('DEF');                    { СР изменяется }
   { блок 3 }
   MoveTo(100, 100);
   SetTextStyle(DefaultFont, VerDir, 1) { разм. симв. =1 }
   SetTextJustify(LeftText, TopText);
   OutText('ABC');                    { CP не изменяется }
   OutText('DEF');                    { СР не изменяется }
   Readln;
   CloseGraph;
  end.

     Процедурой OutTextXY текущий указатель никогда не изме-
няется.
     Выбираемый по умолчанию шрифт (шрифт с битовым  образом
8х8)  не  границе  экране не отсекается. В этом случае, если
какая-либо часть строки не может  быть  помещена  на  экран,
текст просто не выводится. Следующие операторы, например, не
приведут к выводу текста:

  SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn);
  SetTextJustify(LeftText, TopText);
  OutTextXY(-5, 0); { эта точка выходит за границу экрана }
  OutText(GetMaxX -1, 0, 'ABC'); { часть 'A' }
                                 { 'BC' не помещается }

     Однако "штриховые" шрифты отсекаются на границе экрана.
     Аналогичная процедура имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также  процедуры  OutTextXY,  SetTextStyle,
SetTextJustify, GetTextSettings, TextHeight, TextWidth.
     Пример:

uses Graph;
  var
     Gd, Gm : integer;
  begin
    Gd := Detect;
    InitGraph(gd, Gm, '');
    if GraphResult <> grOk then
       Halt(1);
    OutText('Легко использовать');
    Readln;
    CloseGraph;
  end.


Процедура OutTextXY

Модуль Graph


     Функция: Пересылает строку на устройство вывода.
     Описание:  OutTextXY(Х,Y  :  integer;  текст_строка   :
string)
     Примечания: Строка, заданная параметром "текст_строка",
выводится в точке (Х,У). Если строка слишком длинная и выхо-
дит за пределы экрана или текущей области просмотра, то  она
усекается.
     Процедура OutText используется для вывода текста в мес-
те  расположения текущего указателя, процедура OutTextXY ис-
пользуется для вывода текста в любом заданном месте экрана.
     Прочее: См. также процедуры OutText, SetTextStyle, Set-
TextJustify, GetTxtSettings, TextHeight, TextWidth.
     Пример:

uses Graph;
  var
    Gd, Gm : integer;
  begin
    Gd := Detect;
    InitGraph(gd, Gm, '');
    if GraphResult <> grOk then
       Halt(1);
  MoveTo(0,0);
OutText('Неэфффективно');
  OutTextXY(GetX,GetY,'Также неэффективно');
OutTextXY(0,0,'Превосходно!');{ заменяет выведенное ранее }
Readln;
CloseGraph;
end.




HOME