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


 
В этот день много лет назад...
27 апреля. В 1636 году (388 лет назад) - Основывается славный город Тамбов на высоком берегу реки Цны. Он уже в конце XVIII века станет губернским городом, так что не совсем прав Лермонтов, начавший поэму "Тамбовская казначейша" словами "Тамбов на карте генеральной кружком означен не всегда".
 
 

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