Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Стандартный модуль работы с графическим экраном Graph






    1) назначение модуля

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

    • подключить раздел графических подпрограмм Турбо-Паскаля, что выполняется в самом начале раздела описаний оператором USES Graph;
    • инициализировать графику в выполняемом блоке, для чего загрузить в память драйвер управления монитором в графическом режиме. Это делается процедурой InitGraph(...). Далее выполняется выбор цветов и характеристик графических примитивов (точек, линий, стандартных фигур и полигонов, символов текста) и изображаются нужные объекты, с помощью стандартных процедур и функций. По окончании работы графический режим монитора выключается (закрытием графики процедурой CloseGraph).

    2) координаты экрана

    Определяются возможностями видеосистемы ПЭВМ. Обычно стараются использовать наилучший возможный режим экрана

    { *** функции, связанные с координатами *** }

    function GetX: integer; – получить текущую координату X;

    function GetY: integer; – получить текущую координату Y;

    function GetMaxX: integer; – получить максимально возможную координату экрана по X;

    function GetMaxY: integer; – получить максимально возможную координату экрана по Y;

    3) управление графическим режимом

    { *** определение, инициализация и восстановление текстового режима *** }

    procedure DetectGraph (var GraphDriver, GraphMode: integer); – получение возможного типа драйвера и графического режима по установленным аппаратным средствам;

    procedure InitGraph (var GraphDriver: integer;

    var GraphMode: integer;

    PathToDriver: String); – инициализировать графический режим экрана;

    function GetMaxMode: integer; – получение наилучшего графического режима для данной ПЭВМ;

    procedure SetGraphMode (Mode: integer); – задание графического режима;

    function GetGraphMode: integer; – получение текущего графического режима;

    procedure GraphDefaults; – установление графических параметров по-умолчанию (стандартных)

    procedure RestoreCrtMode; – возвращение экрана в состояние, которое было до установления графики

    procedure CloseGraph; – закрытие графического режима.

     

    { Коды завершений графических операций: }

    grOk = 0; – без ошибок.

    grNoInitGraph = -1; – не загружен драйвер графического режима.

    grNotDetected = -2; – не определен тип видеокарты.

    grFileNotFound = -3; – не найден файл с драйвером.

    grInvalidDriver = -4; – ошибка работы драйвера.

    grNoLoadMem = -5; – не хватает места в ОП для загрузки драйвера.

    grNoScanMem = -6; – выход за пределы памяти при сканирующем заполнении

    grNoFloodMem = -7; – выход за пределы памяти при заливке.

    grFontNotFound = -8; – не найден заказанный шрифт.

    grNoFontMem = -9; – не хватает места в ОП для загрузки шрифта.

    grInvalidMode = -10; – неверный режим графики.

    grError = -11; – ошибка графической операции.

    grIOerror = -12; – ошибка графического ввода/вывода

    grInvalidFont = -13; – ошибка в файле шрифта.

    grInvalidFontNum = -14; – недопустимый номер шрифта.

     

    { *** Функции, возвращающие сведения об ошибках *** }

    function GraphErrorMsg (ErrorCode: integer): String; – название ошибки по коду;

    function GraphResult: integer; – код ошибки последней графической операции.

     

    4) управление экраном и окном

    { *** экран, окна, сохранение и восстановление окон *** }

    procedure ClearDevice; – очиска грфического экрана цветом фона. Текущий указатель в левом верхнем углу;

    procedure SetViewPort (x1, y1, x2, y2: integer; Clip: boolean); – задание границ окна и типа отсечения;

    procedure GetViewSettings (var ViewPort: ViewPortType); – получить характеристики окна;

    procedure ClearViewPort; – очистить окно цветом фона;

    procedure SetVisualPage (Page: word); – задает номер отображаемой графической страницы;

    procedure SetActivePage (Page: word); – устанавливает для графического вывода активную страницу.

     

    { *** сохранение/восстановление части экрана *** }

    function ImageSize (x1, y1, x2, y2: integer): word; – определить размер ОП для прямоугольника;

    procedure GetImage (x1, y1, x2, y2: integer; var BitMap); – сохранить в ОП образ прямоугольника;

    procedure PutImage (X, Y: integer; var BitMap; BitBlt: word); – восстановить прямоугольник из ОП.

     

    5) управление цветом

    { константы изображения цветов: }

     

    Таблица 27. Кодировка цветов

    Код Имя константы Цвет
      Black Черный (прозрачный)
      Blue синий
      Green зеленый
      Cyan голубой
      Red красный
      Magenta фиолетовый
      Brown коричневый
      LightGray светло-серый
      DarkGray темно-серый
      LightBlue светло-голубой
      LightGreen светло-зеленый
      LightCyan светло-синий
      LightRed светло-красный
      LightMagenta светло-фиолетовый (розовый)
      Yellow светло-коричневый(желтый)
      White белый

     

    { *** процедуры работы с цветом *** }

    procedure SetBkColor (ColorNum: word); – установить цвет фона;

    procedure SetColor(Color: word); – установить цвет рисования

    function GetBkColor: word; – получить цвет фона;

    function GetColor: word; – получить текущий цвет рисования;

    function GetMaxColor: word; – получить максимально-возможное число цветов.

     

    6) вывод точек

    { *** процедуры работы с точкой *** }

    procedure PutPixel (X, Y: integer; Pixel: word); – поставить на экране точку (X, Y) заданным цветом (pixel);

    function GetPixel (X, Y: integer): word; – получить цвет точки с координатами (Х, Y).

     

    7) вывод линий

    { типы и толщины линий для процедур Get/SetLineStyle: }

    SolidLn = 0; { сплошная };

    DottedLn = 1; { пунктирная };

    CenterLn = 2; { штрих-пунктирная (осевая) };

    DashedLn = 3; { штриховая };

    UserBitLn = 4; { задаваемая пользователем };

    NormWidth = 1; { нормальная (тонкая) };

    ThickWidth = 3; { толстая }.

     

    { *** процедуры перемещений и проведения отрезков линий *** }

    procedure LineTo (X, Y: integer); – линия из текущей точки в (X, Y);

    procedure LineRel (Dx, Dy: integer); – линия из текущей точки в точку, смещенную на (Dx, Dy);

    procedure MoveTo (X, Y: integer); – переход в точку (X, Y);

    procedure MoveRel (Dx, Dy: integer); – переход из текущей точки в точку, смещенную на (Dx, Dy);

    procedure Line (x1, y1, x2, y2: integer); – линия из точки (x1, y1) в точку (x2, y2);

    procedure GetLineSettings (var LineInfo: LineSettingsType); – получить текущие настройки рисования линий;

    procedure SetLineStyle (LineStyle: word;

    Pattern: word;

    Thickness: word); – задать текущие настройки рисования линий.

     

    8) вывод и закраска контуров

    { *** многоугольники, их закраска и текстуры *** }

    procedure Rectangle (x1, y1, x2, y2: integer); – построить незакрашенный прямоугольник;

    procedure Bar (x1, y1, x2, y2: integer); – построить закрашенный прямоугольник;

    procedure Bar3D (x1, y1, x2, y2: integer; Depth: word; Top: boolean); – построить паралелепипед;

    procedure DrawPoly (NumPoints: word; var PolyPoints); – построить контур многоугольника из NumPoints точек;

    procedure FillPoly (NumPoints: word; var PolyPoints); – построить закрашенный многоугольник из NumPoints точек;

    procedure GetFillSettings (var FillInfo: FillSettingsType); – получить текущие характеристики закраски;

    procedure GetFillPattern (var FillPattern: FillPatternType); – получить текущие характеристики текстуры;

    procedure SetFillStyle (Pattern: word; Color: word); – задать характеристики закраски;

    procedure SetFillPattern (Pattern: FillPatternType; Color: word); – задать характеристики текстуры;

    procedure FloodFill (X, Y: integer; Border: word); – залить область текущей закраской от заданной точки (X, Y) до границы, заданной цветом (Border).

     

    9) окружности, эллипсы, дуги

    { *** построение окружностей, эллипсов и их частей *** }

    procedure Arc (X, Y: integer; StAngle, EndAngle, Radius: word); – построение дуги окружности;

    procedure GetArcCoords (var ArcCoords: ArcCoordsType); – получение параметров дуги окружности;

    procedure Circle (X, Y: integer; Radius: word); – построение окружности заданного радиуса и центра;

    procedure Ellipse (X, Y: integer;

    StAngle, EndAngle: word;

    XRadius, YRadius: word); – построение дуги эллипса;

    procedure FillEllipse (X, Y: integer;

    XRadius, YRadius: word); – построение закрашенного эллипса.

     

    procedure GetAspectRatio (var Xasp, Yasp: word); – получение относительного разрешения по X и Y;

    procedure SetAspectRatio (Xasp, Yasp: word); – задание относительного разрешения по X и Y;

    procedure PieSlice (X, Y: integer; StAngle, EndAngle, Radius: word); – построение закрашенного сектора круга;

    procedure Sector (X, Y: Integer;

    StAngle, EndAngle,

    XRadius, YRadius: word); – построение закрашенного сектора эллипса.

     

    10) вывод текста

    { константы для процедур Set/GetTextStyle }

    DefaultFont = 0; { шрифт по-умолчанию };

    TriplexFont = 1; { " оттененный" шрифт };

    SmallFont = 2; { мелкий шрифт };

    SansSerifFont = 3; { шрифт " сан-сериф" };

    GothicFont = 4; { готический шрифт };

    HorizDir = 0; { текст слева–направо };

    VertDir = 1; { текст снизу–вверх };

     

    { размещение текста относительно заданной точки }

    LeftText = 0; { текст влево от точки };

    CenterText = 1; { точка в центре текста };

    RightText = 2; { текст вправо от точки };

    BottomText = 0; { текст под точкой };

     

    { CenterText = 1; уже определено выше }

    TopText = 2; { текст над точкой };

    UserCharSize = 0; { размер шрифта задается программистом }.

     

    { признаки отсечения фигур при выходе за пределы окна }

    ClipOn = true; – за границами окна фигура не видна;

    ClipOff = false; – за границами окна фигура видна;

     

    { *** процедуры вывода текста *** }

    procedure GetTextSettings (var TextInfo: TextSettingsType); – получить текущие настройки вывода текста;

    procedure OutText (TextString: string); – вывести текст относительно текущей точки;

    procedure OutTextXY (X, Y: integer; TextString: string); – вывести текст относительно точки (X, Y);

    procedure SetTextJustify (Horiz, Vert: word); – установить параметры центровки (размещения) текста;

    procedure SetTextStyle (Font, Direction: word; CharSize: word); – выбрать шрифт, его размер и направление вывода текста;

    procedure SetUserCharSize (MultX, DivX, MultY, DivY: word); – задать размер шрифта программиста;

    function TextHeight (TextString: string): word; – получить текущую высоту строки текста;

    function TextWidth (TextString: string): word; – получить текущую ширину строки текста.

    Разбор контрольного варианта № 31






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.