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


 
В этот день много лет назад...
26 ноября. В 1956 году (68 лет назад) - В Ленинграде принимается решение о передаче "Караульного дома" на площади Мира (ныне Сенная) для устройства автобусного вокзала.
 
 

Turbo Pascal Documentation

Процедура GetArcCoords

Модуль Graph


     Функция: Позволяет пользователю выдавать запрос о коор-
динатах последней команды Аrс.
     Описание: GetArcCoords(var координаты: ArcCoordsType)
     Примечания: Данная процедура возвращает переменную типа
CoordType, который является предописанным и определен следу-
ющим образом:

      type
        ArcCoordsType :
        Х,Y : integer; Хнач, Yнач, Хкон,
        Yкон : word;
      end;

     Процедура GetArcCoords возвращает переменную,  содержа-
щую  точку центра (Х,Y), начальную позицию (Хнач,Yнач) и ко-
нечную позицию (Хкон,Yкон) последней команды Аrс. Эти значе-
ния могут быть полезными, если вы хотите, например, провести
прямую, начинающуюся от конца дуги.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуры Arc, Ellipse, PieSlice,
PieSliseXY.
     Пример:

var
  ArcCoords : ArcCoordsType;
begin
  ...
  Arc(100,100,0,89,30);
  GetArcCoords(ArcCoorsType);
  MoveTo(100,100);
  with ArcCoords do
        Line(Xstart, Ystart, Xend, Yend);
  ...
  end.


Процедура GetAspectRatio

Модуль Graph


     Функция: Возвращает действующую разрешающую способность
графического  экрана, с помощью которого можно вычислить ко-
эффициент относительного удлиннения (Хк,Yк).
     Описание: GetAspectRatio(var Хк, Yк : word)
     Примечания: Для каждого драйвера и графического  режима
имеется  связанный с ним коэффициент относительного удлинне-
ния (частное от деления максимального  разрешения  по  y  на
максимальное разрешение по x). Это отношение можно вычислить
путем обращения к процедуре  GetAspectRatio  и  последующего
деления параметра Хк на параметр Yк. Это отношение использу-
ется при вычерчивании окружностей, дуг и закруглений.
     Аналогичная процедура имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуры Arc, Circle, GetMaxX,
GetMaxY, PieSlice, SetAspectRatio.
     Пример:

var
  Xasp, Yasp : word;
  XSideLength, YSideLength : integer;
begin
  ...
  GetAspectRatio(Xasp,Yasp);
   XSideLength := 20;
    { выровнять длину по Y в соответствии с коэфициентом
      относительного удлиннения }
   YSideLength := Round((Xasp/Yasp)*XSideLength);
    { нарисовать на экране "квадратный" прямоугольник }
   Rectangle(0,0,XSideLength,YSideLength);
   ...
  end.


Функция GetBkColor

Модуль Graph


     Функция: Возвращает текущее значение фонового цвета.
     Описание: GetBkColor
     Тип результата: Слово (word).
     Примечания: Фоновый цвет может принимать значения в ди-
апазоне  от  0 до 15 (в зависимости от текущего графического
драйвера и текущего графического режима).
     Если запись 0 палитры была изменена обращением к проце-
дурам  SetPalette  или  SetAllPalette, то функция GetBkColor
будет возвращать значение 0.
      Аналогичная процедура имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуры GetColor, GetPalette, Init-
Graph, SetAllPalette, SetBkColor, SetColor, SetPalette.
     Пример:

  uses Graph;
  var
    GraphDriver, GraphMode : integer;
    Color : word;
  begin
    GraphDriver := Detect;
    InitGraph(GraphDriver,GraphMode,'');
    if GraphResult <> grOk then
      Halt(1);
    Randomize;
    repeat
    Color := Succ(GetBkColor);
    if Color > PaletteSize then
      Color := 0;
    SetBkColor(Color);
    LineTo(Random(GetMaxX), Random(GetMaxY));
  until False;                 { для выхода нажмите ^Break }
end.


Процедура GetCBreak

Модуль Dos


     Функця: Возвращает состояние Ctrl-Break, которое прове-
ряется операционной системой ДОС.
     Описание: GetCBreak(var Break: boolean)
     Примечания:  Данная  процедура   возварщает   состояние
Ctrl-Break,  проверяемое  в  ДОС.  В  выключенном  состоянии
(False) ДОС проверяет Ctrl-Break только при выводе  на  кон-
соль,  устройство  печати  или  в коммуникационные порты. Во
включенном состоянии (True) проверки делаются при каждом об-
ращении к системе.
     Прочее: См. также функцию SetCBreak.


Функция GetColor

Модуль Graph


     Функция: Возвращает текущее значение  основного  цвета,
установленное  при предыдущем успешном обращении к процедуре
SetColor.
     Описание: GetColor
     Тип результата: Слово (word).
     Примечания: Если данная процедура  возвращает  значение
0, то это означает, что текущим цветом, используемым для вы-
черчивания, является первый цвет палитры. Основной цвет  мо-
жет принимать значения от 0 до 15, в зависимости от текущего
графического режима и графического драйвера.
     Аналогичная функция имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуры GetBkColor, GetPalette, In-
itGraph, SetAllPelette, SetColor, SetPalette.
     Пример:

var
  GraphDriver, GraphMode : integer;
  Color : word;
begin
  GraphDriver := Detect;
  InitGraph(GraphDriver,GraphMode,'');
  Randomize;
repeat
    Color := Succ(GetBkColor);
    if Color > PaletteSize then
      Color := 0;
    SetBkColor(Color);
    LineTo(Random(GetMaxX), Random(GetMaxY));
  until False;                 { для выхода нажмите ^Break }
end.


Процедура GetDate

Модуль Dos


     Функция: Возвращает текущую дату, установленную в  опе-

рационной системе.
     Описание: GetDate(var год, месяц, число, день_недели  :
word)
     Примечания: Возвращаемые значения имеют следующие  диа-
пазоны:  "год" - 1980..2099, "месяц" - 1..12, "число" 1..31,
"день_недели" - 0..6 (где значение 0 соответствует воскресе-
нью).
     Прочее: См. также процедуры SetDate, GetTime, SetTime.


Функия GetDefaultPalette

Модуль Graph


     Функция: Возвращает запись описания паплитры.
     Описание: GetDefaultPalette(var палитра: PaletteType)
     Примечания:   Данная    функция    возвращает    запись
PaletteType,  содержащую палитру, инициализированную драйве-
ром при вызове процедуры InitGraph.

  const
     MaxColors = 15;
  type
    PaletteType = record
                    Size : byte;
                    Colors : array[0..MaxColor] of shortint;
                  end;

     Аналогичная фукнция имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также функции  InitGraph,  GetPalette,  Se-
tAllPalette, SetPalette.
     Пример:

  uses
   Crt, Graph;
  var
   Driver, Mode,
    i : integer;
   MyPal, OldPal : PletteType;
  begin
    DirectVideo := false;
    Randomize;
    Driver := Detect;   { перевести в граический режим }
    InitGraph(Driver, Mode, '');
    if GraphResult < 0 then
       Halt(1);
    GetDefultPalette(OldPal); { сохранить старую палитру }
    MyPal := OldPal; { скопировать и изменить }
    { вывести инормацию на экран }
    for i = 0 to MyPal.Size - 1 do
    begin
      GetColor(i);
      OutTextXY(10, i * 10, '...нажмите любую клавишу...');
    end;
    repeat      { менять палтру, пока нажата клавиша }
      with MyPl do
        Colors[Random(Size)] := Random(Size + 1);
      SetAllPalette(MyPal);
    until KeyPressed;
    SetAllPalette(OldPal); { восстановить исходную палитру }
    ClearDevice;
    OutTextXY(10, 10, 'Нажмите RETURN...')
    ReadLn;
    CloseGraph;
end.


Процедура GetDir


     Функция: Возвращает текущий каталог на заданном диске.
     Описание: GetDir(d : byte; var s : string)
     Примечания: Параметр d представляет собой выражение це-
лого  типа, а s - переменную строкового типа. Значение теку-
щего каталога на диске, заданного параметром d, возвращается
в  переменной  s. Значение d = 0 указывает на текущий диско-
вод, 1 - задает дисковод А, 2 - В и т.д.
     При  указании  директивы  компилятора   {I-}   функция
IORеsult будет возвращать значение 0 в том случае, если опе-
рация завершилась успешно, и ненулевой код ошибки в  против-
ном случае.
     Прочее: См. также процедуры ChDir, MkDir, RmDir.


Функция GetDriverName

Модуль Graph


     Функция: Возвращает  строку,  содержащую  имя  текущего
драйвера.
     Описание: GetDriverName
     Тип результата: Строковый (string).
     Примечания: После обращения к InitGraph данная  функция
возвращает имя активного драйвера.
     Аналогчная функция имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также функцию InitGraph.
     Пример:

  uses Graph;
  var
    Driver, Mode : integer;
  begin
    Driver := Detect;  { перевести в графический режим }
    InitGraph(Driver, Mode, '');
    if GraphResult < 0 then
       Halt(1);
    OutText('Используется драйвер ' + GetDriverName);
    ReadLn;
    CloseGraph;
  end.


Функция GetEnv

Модуль Dos


      Функция: Возвращает значение заданной переменной опера-
ционной среды.
     Описание: GetEnv(перем_среды : string)
     Примечания: Функция GetEnv возвращает значение заданной
переменной.  Имя переменной может указываться как строчными,
так и прописными буквами, но оно не должно включать  в  себя
знак  равенства  (=).  Если заданная переменная операционной
среды не существует, то  функция  GetEnv  возвращает  пустую
строку.
     Более подробная информация об  операционной  среде  ДОС
содержится в справочных руководствах по ДОС.
     Прочее: См. также функции EnvCount, EnvStr.
     Пример:

  {M 8192,0,0}
  uses Dos;
  var
    Command: string[79];
  begin
    Write('Ввведите команду ДОС: ');
    ReadLn(Command);
    if Command <> '' then
       Command := '/C/ + Command;
    SwapVectors;
    Exec(GetEnv(COMSPEC'), Command);
    SwapVectors;
    if DosError <> 0 then
       Writeln('Нельзя выполнить COMMAND.COM');
  end.


Процедура GetFAttr

Модуль Dos


     Функция: Возвращает атрибуты файла.
     Описание: GetAttr(var f; var атриб : byte)
     Примечания: Параметр f должнен представляеть собой фай-
ловую  переменную  (соответствующую типизованному, нетипизо-
ванному или текстовому файлу) для которого должно  быть  вы-
полнено  присваивание файловой переменой, но который не дол-
жен быть открыт. Проверка атрибутов выполняется путем  срав-
нения их с масками, заданными в виде констант в модуле Dos:

  const
    { константы атрибутов файла }
   ReadOnly   = 01;  { только чтение }
   Hidden     = 02;  { "скрытый" файл }
   SysFile    = 04;  { системный файл }
   VolumeId   = 08;  { идентификатор тома }
   Directory  = 10;  { каталог }
   Archive    = 20;  { архивизация }
   AnyFile    = 3F;  { прочий файл }

     Коды ошибок можно получить с помощью функции  DosError.
Возможными  кодами  ошибок являются код 3 (недопустимый мар-
шрут) и код 5 (файл недоступен).
     Ограничения: Файл f не должен быть открыт.
     Прочее: См. также процедуры SetFAttr,  GetFAttr,  SetF-
Time.
     Пример:

uses Dos;
  var
    f : file;
    attr : byte;
  begin
{ получить из командной строки имя файла }
Assign(f, ParamStr(1));
GetFAttr(f, attr);
Writeln(ParamStr(1));
ifDosError <> 0 then
    Writeln('Код ошибки ДОС = ', DosError)
else
begin
    Writeln('Атрибут = ', attr);
{ определить тип атрибута файла с помощью флагов в модуле
   Dos }
  if attr and ReadOnly <> 0 then
    Writeln('Файл доступен только по чтению');
if attr and Hidden <> 0 then
    Writeln('"Скрытый" файл');
if attr and SysFile <> 0 then
    Writeln('Системный файл');
if attr and VolumeId <> 0 then
    Writeln('Идентификатор тома');
if attr and Directory <> 0 then
    Writeln('Каталог');
if attr and Archive <> 0 then
    Writeln('Архивизируемый (обычный) файл');
end; { else }
end.


Процедура GetFillPattern

Модуль Graph


     Функция: Возвращает текущий образец заполнителя, задан-
ный последним обращением к процедуре SetFillPattern.
     Описание: GetFillPattern(var образец_заполнителя: Fill-
PatternType)
     Примечания: Тип FillPatternType описан в модуле Graph:

  type
    FillPatternType = array[1..8] of byte;

     Если   пользователь   не    обращался    к    процедуре
SetFillPattern,  то  процедура GetFillPattern возвратит мас-
сив, заполеннный FF.
     Аналогичная процедура имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуры SetFillPattern, GetFillSet-
tings.


Процедура GetFillSettings

Модуль Graph


      Функция: Позволяет выдавать запрос о текущем  типе  за-
полнителя  и его цвете, которые установлены процедурами Set-
FillStyle или SetFillPattern.
     Описание:    GetFillSetings(var     информ_заполн     :
FillSettingsType)
     Примечания: Данная процедура возвращает переменную типа
FillSettingsType, который описывается в модуле Graph следую-
щим образом:

type
   FillSettingsType = record
                        Pattern : word;             { тип }
                        Color   : word;             { цвет }
                      end;

     Поле Pattern содержит выбранный в качестве текущего тип
заполнителя.  Поле Color содержит выбранный в качестве теку-
щего цвет закраски. И образец, и цвет закраски  можно  изме-
нить путем обращения к процедурам SetFillStyle и SetFillPat-
tern.
     Ограничения: Должен использоваться графический режим.
     Прочее: См.  также  процедуры  FillPoly,  SetFillStyle,
SetFillPattern.
     Пример:

var
   FillInfo : FillSttingsType;
   CurPattern,
   CurColor : word;
begin
  ...
  GetFillSettings(FillInfo);
  CurPattern := FillInfo.Pattern;
  CurColort := FillInfo.Color;
  ...
end.


Процедура GetFTime

Модуль Dos


     Функция: Возвращает дату и время последней записи  фай-
ла.
     Описание: GetFTime(var f; var время)
     Примечания: Параметр f должнен представляеть собой фай-
ловую  переменную  (соответствующую типизованному, нетипизо-
ванному или текстовому файлу) для которого должно  быть  вы-
полнено присваивание файловой переменной, но который не дол-
жен быть открыт. Значение времени, возвращаемое в  параметре
"время",  может быть распаковано путем обращения к процедуре
UnpackTime. Коды ошибок можно  получить  с  помощью  функции
DosError. Единственным возможным кодом ошибки является код 6
(недопустимая обработка файла).
     Ограничения: Файл должен быть открыт.
     Прочее: См. также процедуры SetFTime, PackTime, UnPack-
Time.

-----------------------------------------------------------
Функция GetGraphMode                         Модуль Graph
-----------------------------------------------------------
     Функция: Возвращает текущий графический режим.
     Описание: GetGraphMode
     Примечания: Данная процедура возвращает текущий  графи-
ческий  режим,  установленный с помощью процедур InitGraph и
SetGraphMode. Значения режима представляет собой целое число
в диапазоне от 0 до 5 и зависит от текущего драйвера.
     Определены следующие константы режима:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Графический   Имя     Значение   Столбцов   Палитра  Страниц
  драйвер  константы              х строк
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CGA         CGAC0         0      320x200        C0        1
            CGAC1         1      320x200        C1        1
            CGAC2         2      320x200        C2        1
            CGAC3         3      320x200        C3        1
            CGAHi         4      640x200     2 цвета      1

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MCGA        MCGAC0        0      320x200        C0        1
            MCGAC1        1      320x200        C1        1
            MCGAC2        2      320x200        C2        1
            MCGAC3        3      320x200        C3        1
            MCGAMed       4      640x200     2 цвета      1

EGA         EGALo         0      640x200     16 цветов    1
            ЗЙДКк         1      640щ350     16 цветов    2

ЗЙД64       ЗЙД64Ор       0      640щ200     16 цветов    1
            ЗЙД64Кк       1      640щ350      4 цвета     1

EGA-        EGAMonoHi     3      640x350      2 цвета     1*

MONO        EGAMonoHi     3      640x350      2 цвета    1**

HERC        HercMonoHi    0      720x348      2 цвета     2

ATT400      ATT400C0      0      320x200         C0       1
            ATT400C1      1      320x200         C1       1
            ATT400C2      2      320x200         C2       1
            ATT400C3      3      320x200         C3       1
            ATT400Med     4      640x200       2 цвета    1
            ATT400Hi      5      640x200       2 цвета    1

VGA         VGALo         0      640x200      16 цветов   2
            VGAMed        1      640x350      16 цветов   2
            VGAHi         2      640x480      16 цветов   1

PC3270      PC3270Hi      0      640x200       2 цвета    1

8514        IBM8514Lo     0      640x480      256 цветов  1
8514        IBM8514Hi     0     1024x768      256 цветов  1

* - 64К на плате EGAMono
** - 256К на плате EGAMomo
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Аналогичная процедура имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуры ClearDevice, DetectGraph,
InitGraph, RestoreCrtMode, SetGraphMode.
     Пример:

  uses Graph;
  var
    Gd, Gm : integer;
    Mode : integer;
  begin
   Gd := Detect;
   InitGraph(Gd, Gm, '');
   if GraphResult <> grOk then
      Halt(1);
   OutText('Для выхода из средств графики нажмите RETURN:');
   Readln;
   RestoreCRTMode;
Writeln('Теперь вы в текстовом режиме');
Writeln('Для перехода в графический режим нажмите RETURN');
   Readln;
   SetGraphMode(GetGraphMode);
   OutTextXY(0, 0, 'Вы снова в графическом режиме');
OutTextXY(0, TextHeight('H'), 'Для выхода нажмите RETURN');
   Readln;
   CloseGraph;
end.


Процедура GetImage

Модуль Graph


     Функция: Сохраняет в буфере двоичный образ заданной об-
ласти экрана.
     Описание:  GetImage(х1,  у1,  х2,  у2,  :   word;   var
бит_масс)
      Примечания: Параметры х1, у1, х2, у2 определяют прямоу-
гольную область экрана. Параметр "бит_масс" является нетипи-
зованным параметром, который должен быть больше или равен 4,
плюс  размер  памяти,  отведенный для области экрана. Первые
два слова параметра "бит_масс" зарезервированы для ширины  и
высоты области экрана:

width  := x2 - x1 + 1;                        { ширина }
heignt := y2 - y1 + 1;                        { высота }

     Оставшаяся часть параметра "бит_масс" используется  для
сохранения  самого двоичного образа. Для определения размера
памяти, необходимой для  параметра  "бит_масс",  используйте
фунцию ImageSize.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуры ImageSize, PutImage.
     Пример:

var
   P    : pointer;
   Size : word;
   Gd, Gm : pointer;
  begin
   Gd := Detect;
   InitGraph(Gd, Gm, '');
   if GraphResult <> grOk then
      Halt(1);
  Bar(0, 0, GetMaxX, GetMaxY);
  Size := ImageSize(10,20,30,40);
  GetMem(p,Size);         { выделить память в динамически
                            распределяемой области }
  GetImage(10,20,30,40,p^);
  Readln;
  ClearDevice;
  PutImage(100, 100, P^, NormalPut);
  Readln;
  CloseGraph;
end.


Процедура GetIntVec

Модуль Dos


     Функция: Возвращает адрес указанного  вектора  прерыва-
ний.
     Описание: GetIntVec( ном_прерыв : byte;  вектор  :
pointer)
     Примечания: Параметр "ном_прерыв" задает номер  вектора
прерывания  (от  0 до 255), а его адрес возвращается в пара-
метре "вектор".
     Прочее: См. также процедуру SetIntVec.


Процедура GetLineSettings

Модуль Graph


     Функция: Возвращает текущий тип линии, образец линии  и
ее толщину, установленные процедурой SetLineStyle.
     Описание: GetLineStyle(var LineInfo : LineSettingsType)
     Примечания: Определены следующие константы и типы:

  type
    LineSettingsType = record
        LineStyle  : word;
        Pattern    : word;
        Thickness  : word;
  end;

const
   { типы линий }
   SolidLn   = 0;
   DottedLn  = 1;
   CenterLn  = 2;
   DashedLn  = 3;
   UserBitLn = 4;     { тип линии, заданный пользователем }

  { толщина линии }
   NormWidth   = 1;         { обычная линия }
  ThickWidth  = 3;         { жирная линия }

     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуру SetLineStyle.
     Пример:

  var
    LineInfo : LineSettingsType;
  begin
   ...
   GetLineSettings(LineInfo);
   CurStyle := LineInfo.LineStyle;
   CurPattern := LineInfoPattern;
   CurWidth := LineInfo.Thickness;
   ...
  end.


Процедура GetMaxColor

Модуль Graph


     Функция: Возвращает наибольшее значение цвета,  которое
можно передать процедуре SetColor.
     Описание: GetMaxColor
     Тип результата: Слово (word).
     Примечания: Например, при использовании адаптера EGA  с
256К  функция GetMaxColor всегда возвращает значение 15. Это
означает,  что  допускается  любое  обращение  к   процедуре
SetColor со значением от 0 до 15. При использовании адаптера
CGA в режиме с высоким  разрешением  или  монохроматического
адаптера Hercules, поскольку эти адаптеры поддерживают толь-
ко значения основного цвета 0 или 1,  процедура  GetMaxColor
возвращает значение 1.
     Аналогичная процедура имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуру SetColor.


Функция GetMaxMode

Модуль Graph


     Функция: Возвращает для текущего загруженного  драйвера
максимальное значение номера режима.
     Описание: GetMaxMode
     Тип результата: Слово (word).
     Примечания: Данная функция позволяет вам непосредствен-
но из драйвера найти для текущего драйвера максимальное зна-
чение номера режима. (Ранее единственный способ,  с  помощью
которого вы могли получить это значение, состоял в использо-
вании процедуры GetModeRange.  Теперь  эта  процедура  также
поддерживается, но только для драйверов фирмы Борланд.) Зна-
чение, возвращаемое функцией GetMaxMode, представляет  собой
максимальное  значение,  которое  можно  передать  процедуре
SetGraphMode.  В  каждом  драйвере   поддерживаются   режимы
0..GetMaxMode.
     Аналогичная процедура имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуры GetModeRange, SetGraphMode.
     Пример:

  uses
    Graph;
  var
    Driver, Mode : integer;
    i : integer;
  begin
    Driver := Detect;  { перевести в графический режим }
    InitGraph(Driver, Mode, '');
    if GraphResult < 0 then
       Halt(1);
    for i := 0 to GetMaxMode do { вывести на экран все
                                  названия режимов }
      OutTextXY(10, 10 * Succ(i), GetModeName(i));
    Readln;
    CloseGraph;
  end.


Функция GetМахХ

Модуль Graph


     Функция: Возвращает для текущего графического режима  и
драйвера самый правый столбец (разрешение по х).
     Описание: GetMaxX
     Тип результата: Целый (integer).
     Примечания: Возвращает для текущего графического режима
и  драйвера  максимальное  значение х. В режиме 320х200 СGА,
например, данная процедура будет возвращать значение 319.
     Процедуры GetМахХ и  GetМахY  чрезвычайно  полезны  для
центрирования, определения границ области экрана и т.д.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуры GetMaxY, GetX, GetY,  Move-
To.
     Пример:

  uses
    Graph;
  var
    Driver, Mode : integer;
    i : integer;
  begin
    Driver := Detect;  { перевести в графический режим }
    InitGraph(Driver, Mode, '');
    if GraphResult < 0 then
       Halt(1);
  Rectangle(0,0,GetMaxX,GetMexY);  { нарисовать полную рамку

                                    экрана }
    Readln;
    CloseGraph;
  end.


Функция GetМахY

Модуль Graph


     Функция: Возвращает для текущего графического режима  и
драйвера самую нижнюю строку (разрешение по y).
     Описание: GetMaxY
      Тип результата: Целый (integer).
     Примечания: Возвращает для текущего графического режима
и  драйвера  максимальное  значение y. В режиме 320х200 СGА,
например, данная процедура будет возвращать значение 199.
     Процедуры GetМахХ и  GetМахY  чрезвычайно  полезны  для
центровки, определения границ области экрана и т.д.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуры GetMxX, GetX, GetY, MoveTo.
     Пример:

  uses
    Graph;
  var
    Driver, Mode : integer;
    i : integer;
  begin
    Driver := Detect;  { перевести в графический режим }
    InitGraph(Driver, Mode, '');
    if GraphResult < 0 then
       Halt(1);
  Rectangle(0,0,GetMaxX,GetMexY);  { нарисовать полную рамку

                                    экрана }
    Readln;
    CloseGraph;
  end.


Процедура GetMem


     Функция: Создает новую динамическую переменную  указан-
ного размера и помещает адрес блока в переменную-указатель.
     Описание: GetMem(var р : роinter; размер : word)
     Примечания: Параметр р является переменной-указателем и
может  относится к любому типу указателей. Параметр "размер"
имеет длину в слово и задает размер (в байтах) области памя-
ти, выделяемой для динамической переменной. На вновь создан-
ную переменную можно ссылаться с помощью р.
     Если для выделения памяти под новую динамическую  пере-
менную  в  динамически  распределяемой  области недостаточно
свободной памяти, то во время выполнения программы  происхо-
дит  ошибка. (Этой ошибки можно избежать - см. раздел "Функ-
ция обработки ошибки динамически распределяемой области  па-
мяти" в Главе 26.)
     Ограничения: Наибольший блок, который может быть  выде-
лен  в динамически распределяемой области памяти, составляет
65521 байт (64 К - F). Если динамически распределяемая  об-
ласть  не  фрагментирована,  например,  в  начале выполнения
программы, то при успешных обращениях к процедуре GetМем бу-
дут выделяться соседние блоки памяти.
     Отличия: В версии 3.0 параметр "размер" был целого  ти-
па.
     Прочее: См. также процедуры New, FreeMem.


Функция GetModeName

Модуль Graph


     Функция: Возвращает строку,  содержащую  имя  заданного
графического режима.
     Описание: GetModeName(номер_режима: integer)
     Тип результата: строковый (string).
     Примечания: Имена режимов встроены  в  каждый  драйвер.
Возвращаемые  значения  (320х200 CGA P1, 640х200 CGA и т.д.)
можно использовать для создания меню, вывода режимов  экрана
и т.д.
     Аналогичная функция имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также функции GetMaxMode, GetModeRange.
     Пример:

  uses
    Graph;
  var
    Driver, Mode : integer;
    i : integer;
   begin
    Driver := Detect;  { перевести в графический режим }
    InitGraph(Driver, Mode, '');
    if GraphResult < 0 then
       Halt(1);
  for i := 0 to GetMaxMode do { вывести все имена режимов }
      OutText(10, 10 * Succ(i), GetModeName(i));
    Readln;
    CloseGraph;
  end.


Процедура GetModeRange

Модуль Graph


     Функция: Для данного драйвера возвращает  наименьший  и
наибольший графический режим.
     Описание: GetModeRange(GraphDriver : integer;  var
LoMode, HiMode : integer)
     Примечания: Вывод следующей программы:

  uses Graph;
  var
    Lovest, Highest : integer;
  begin
    GetModeRange(EGA64, Lowest, Highest);
    Write('Наименьшее значение = ', Lowest);
    Write('Наибольшее значение = ', Highest);
  end.

даст наименьшее значение = 0 и наибольшее значение = 1. Если
значение  GraphDriver является недопустимым, то возвращаемый
параметр будет равен -1.
     Аналогичная функция имеется в версии 2.0 Турбо-Си.
     Прочее: См. также  процедуры  SetGraphMode,  InitGraph,
DetectGraph.


Процедура GetPalette

Модуль Graph


     Функция: Возвращает текущую палитру и ее размер.
     Описание: GetPalette(var палитра :
     Примечания: Возвращает в  переменной  типа  PaletteType
текущую палитру и ее размер. Тип PaletteType описан в модуле
следующим образом:

const
   MaxColor = 15;
type
   PaletteType = record
     Size   : byte;
     Colors : array[0..MaxColors] of shortint;
  end;

     В поле размера (size) содержится число цветов в палитре
для текущего графического режима и драйвера. Поле Colors со-
держит действительные значения цветов от 0 до Sizе-1.
     Аналогичная процедура имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуры SetPalette, SetAllPalette.
     Пример:

  uses
    Graph;
  var
    Driver, Mode : integer;
    i : integer;
  begin
    Driver := Detect;  { перевести в графический режим }
    InitGraph(Driver, Mode, '');
    if GraphResult < 0 then
       Halt(1);
    GetPalette(Palette);
    If Palette.Size <> 1 then
  for i := 0 to Pred(Palette.Size) do
  begin
    SetColor(Color);
     Line(o, Color*5, 100, Color*5);
    end
    else
      Line(0, 0, 100, 0);
    Readln;
    CloseGraph;
    end.


Функция GetPaletteSize

Модуль Graph


     Функция: Возвращает размер таблицы палитры цветов.
     Описание: GetPaletteSize
     Тип результата: Слово (word).
     Примечания: Данная функция показывает, сколько  записей
палитры  можно задать для текущего графического режима. Нап-
ример, при использовании  цветного  режима  и  адаптера  EGA
функция возвратит значение 16.
     Аналогичная функция имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также функцию GetMaxColor.


Процедура GetPixel

Модуль Graph


     Функция: Получает значение элемента изображения в точке Х,Y.
     Описание: GetPixel(X,Y :integer)
     Тип результата: Слово (word).
     Примечания: Получает цвет элемента изображения в  точке Х,Y.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуры PutPixel, GetImage,  PutImage.
     Пример:

  uses
    Graph;
   var
    Gd, Gm : integer;
    PixelColor: word;
  begin
    Gd := Detect;  { перевести в графический режим }
    InitGraph(Gd, Gm, '');
    if GraphResult < 0 then
       Halt(1);
    PixelColor := GetPixel(10, 10);
    if PixelColor = 0 then
      PutPixel(10, 10, GetMaxColor);
    Readln;
    CloseGraph;
  end.


Процедура GetTextSettings

Модуль Graph


     Функция: Возвращает текущий тип текстового шрифта,  его
направление,  размер и выравнивание, установленные с помощью
процедур SetTextStyle и SetTextJustify.
     Описание: GetTextSettings(var TextInfo: TextSettingsType)
     Примечания: Определены следующие константы и типы:

type
   CharSizeType = 1..10;
   TextSettingsType = record
                        Font            : word;
                        Direction       : word;
                        CharSize        : CharSizeType;
                        Horiz           : word;
                        Vert            : word;
                      end;
const
   DefaultFont         = 0; { шрифт с двоичным образом 8х8 }
   TriplexFont         = 1; { "штриховые" шрифты }
   SmallFont           = 2;
   SanSerifFont        = 3;
   GothicFont          = 4;
   HorizDir    = 0;         { слева направо }
   Vertir      = 1;         { снизу вверх }
   NormSize    = 1;

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

  uses
    Graph;
  var
    Gd, Gm : integer;
    OldStyle : TextSettingsType;
  begin
    Gd := Detect;  { перевести в графический режим }
    InitGraph(Gd, Gm, '');
    if GraphResult < 0 then
       Halt(1);
  GetTextSettings(OldStyle);
  SetTextJustify(LeftText, CenterText);
  SetTextStyle(TriplexFont, VertDir, 4);
  OutTextXY(GetMaxX, div 2, GetMaxY div 2, 'Новый тип');
  with OldStyle do
  begin                { восстановить старый тип текста}
    SetTextJustify(Horiz, Vert);
    SetTextStyle(Font, Direction, CharSize);
  end;
  OutTextXY(0, TextHeight('H'), 'Снова старый тип');
  Readln;
  CloseGraph;
end.


Процедура GetTime

Модуль Dos


     Функция: Возвращает установленное в операционной системе
текущее время.
     Описание: GetTime(var час, минута, секунда, сот_сек: word)
     Примечания: Возвращаемые параметры принимают  следующие
значения: "час" - от 0 до 23, "минута" - от 0 до 59, "секун-
да" - от 0 до 59 и "сот_сек" (сотая доля секунды) - от 0 до 99.
     Прочее: См. также процедуры SetTime, GetDate, SetDate.


Процедура GetVerify

Модуль Dos


     Функция: Возвращает состояние флага проверки ДОС.
     Описание: GetVerify(var флаг_проверки : boolean)
     Примечания: Данная процедура возвращает состояние флага
проверки  ДОС. При сброшенном флаге (False) проверка при за-
писи на диск не выполняется. При установленном флаге  (True)
для  обеспечения  правильности записи все операции записи на
диск проверяются.
     Прочее: См. также процедуру SetVerify.


Процедура GetViewSettings

Модуль Graph


     Функция: Позволяет пользователю выдать запрос о текущей
области просмотра на экране и параметрах "вырезанного" изображения.
     Описание: GetViewSettings(var ViewPort : ViewPortType)
     Примечания: Данная процедура возвращает переменную типа
ViewPortType. Этот тип предварительно описан следующим образом:

   type
    ViewPortType = record
                     x1, y1, x2, y2: integer;
                     Clip : boolean;
                   end;
     Аналогичная процедура имеется в версии 2.0 Турбо-Си.
     Точки (x1,y1) и (x2,y2) представляют собой размеры  ак-
тивной  области  просмотра. Параметр Clip представляет собой
переменную булевского типа и указывает на наличие  "вырезан-
ного" (отсеченного за заданными границами) изображения.
     Аналогичная процедура имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуру SetViewPort.
     Пример:

  uses
    Graph;
  var
    Gd, Gm : integer;
   ViewPortType = ViewPortType;
  begin
    Gd := Detect;  { перевести в графический режим }
    InitGraph(Gd, Gm, '');
    if GraphResult < 0 then
       Halt(1);
    GetViewSettings(ViePort);
    with ViewPort do
    begin
      Rectangle(0, 0, x2 - x1, y2 - y1);
      if Clip then
         OutText('Отсечение изображения не активно');
      else
      OutText('Сегодня отсечение изображения не действует');
     end;
     Readln;
     CloseGraph;
  end.


Функция GetX

Модуль Graph


     Функция: Возвращает Х-координату текущего указателя (СР).
     Описание: GetX
     Тип результата: Целый (integer).
     Примечания: Процедура GetХ зависит от области  просмот-
ра. Таким образом, ее значение всегда равно абсолютной Х-ко-
ординате СР, минус ViewPort.х1. В следующем примере:

1 SetViewPort(0,0,GetMaxX,GetMaxY,True);
2 MoveTo(5,5);
3 SetViewPort(10,10,100,100,True);
4 MoveTo(5,5);

     - в строке 1 СР перемещается в точку с абсолютными ко-
ординатами (0,0), и процедура GetХ также возвращает значение 0;
     - в строке 2 СР перемещается в точку с абсолютными  ко-
ординатами (5,5), и процедура GetХ также возвращает значение 5;
     - в строке 3 СР перемещается в точку с абсолютными ко-
ординатами (10,10), но процедура GetХ возвратит значение 0;
     - в строке 4 СР перемещается в точку с абсолютными ко-
ординатами (15,15), но процедура GetХ возвратит значение 5.
     Аналогичная функция имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
     Прочее: См. также процедуры GetViewSettings, GetY,
InitGraph, MoveTo, SetViewPort.
     Пример:

  uses Graph;
  var
    GraphDriver, GraphMode : integer;
    x, y : integer;
  begin
    GraphDiver := Detect;
    InitGraph(GraphDriver,GraphMode,'');
    if Graphesult <> grOk then
        Halt(1);
    OutText('Начнем здесь.');
    x := GetX;
    y := GetY;
    OutText(20,10,'Теперь перейдем сюда...');
    OutText(x,y,'А теперь вернемся назад.');
    Readln;
    CloseGraph;
  end.


Функция GetY

Модуль Graph


     Функция: Возвращает Y-координату текущего указателя (СР).
     Описание: GetY
     Тип результата: Целый (integer).
     Примечания: Процедура GetY зависит от области просмот-
ра. Таким образом, ее значение всегда равно абсолютной Х-ко-
ординате СР, минус ViewPort.у1. В следующем примере:

1 SetViewPort(0,0,GetMaxX,GetMaxY,True);
2 MoveTo(5,5);
3 SetViewPort(10,10,100,100,True);
4 MoveTo(5,5);

     - в строке 1 СР перемещается в точку с абсолютными ко-
ординатами (0,0), и процедура GetY также возвращает значение 0;
     - в строке 2 СР перемещается в точку с абсолютными  ко-
ординатами (5,5), и процедура GetY также возвращает значение 5;
     - в строке 3 СР перемещается в точку с абсолютными  ко-
ординатами (10,10), но процедура GetY возвратит значение 0;
     - в строке 4 СР перемещается в точку с абсолютными  ко-
ординатами (15,15), но процедура GetY возвратит значение 5.
     Аналогичная функция имеется в версии 2.0 Турбо-Си.
     Ограничения: Должен использоваться графический режим.
      Прочее:  См.  также  процедуры  GetViewSettings,  GetX,
InitGraph, MoveTo, SetViewPort.
     Пример:

  uses Graph;
  var
    GraphDriver, GraphMode : integer;
    x, y : integer;
  begin
    GraphDiver := Detect;
    InitGraph(GraphDriver,GraphMode,'');
    if Graphesult <> grOk then
       Halt(1);
    OutText('Начнем здесь.');
    x := GetX;
    y := GetY;
    OutText(20,10,'Теперь перейдем сюда...');
    OutText(x,y,'А теперь вернемся назад.');
    Readln;
    CloseGraph;
  end.




HOME