Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi (новый) без баз данных.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
7.61 Mб
Скачать

Глава XXII. Графика в Delphi

Программирование графики в Windows является сложным и трудным процессом, но в Delphi имеются классы, существенно упрощающие использование графических средств Windows:

  • Tcanvas – для дисплейного контекста

  • TFont – для шрифта

  • TPen – для пера

  • TBrush – для кисти

22.1. Класс tCanvas

Этот класс создаёт “канву” – поверхность, на которой можно рисовать чертёжными инструментами – пером, кистью и шрифтом. Объекты класса TCanvas автоматически создаются для всех видимых компонентов, которые должны уметь нарисовать себя.

Свойства класса:

Свойство

Значение

Brush

Объект – кисть.

ClipRect

Определяет текущие размеры области, нуждающиеся в прорисовке.

CopyMode

Устанавливает способ взаимодействия растрового изображения с цветом фона.

Font

Объект – шрифт.

LockCount

Счётчик блокировок канвы. Увеличивается на единицу при каждом обращении к методу Lock и уменьшается при обращении к Unlosk.

Pen

Объект – перо.

PenPos

Определяет текущее положение пера в пикселях относительно левого верхнего угла канвы.

Pixels(X,Y:Integer)

Массив пикселей канвы.

Методы класса:

Метод

Назначение

Arc(x1,y1,x2,y2,x3,y3,x4,y4)

Чертит дугу эллипса в охватывающем прямоугольнике (х1,у1)‑(х2,у2). Начало дуги лежит на пересечении эллипса и луча, проведенного из его центра в точку (х3,у3), а конец – на пересечении с лучом из центра в точку (х3,у4)

Chord(x1,y1,x2,y2,x3,y3,x4,y4)

Чертит сегмент эллипса в охватывающем прямоугольнике (х1,у1)‑(х2,у2)

Ellipse(x1,y1,x2,y2)

Чертит эллипс в охватывающем прямоугольнике (х1,у1)‑(х2,у2). Заполняет все внутреннее пространство эллипса текущей кистью

FillRect(const Rect)

Заполняет текущей кистью прямоугольную область Rect, включая ее левую и верхнюю границы, но не затрагивая правую и нижнюю

LineTo(x,y)

Чертит линию от текущего положения пера до точки (х,у)

MoveTo(x,y)

Перемещает перо в положение (х,у) без вычерчивания линий

PolyGon(points: array of points)

Вычерчивает пером многоугольник по точкам, заданным в массиве points. Конечная соединяется с начальной, и многоугольник заполняется кистью

PolyLine(points: array of points)

Вычерчивает пером ломаную прямую по точкам, заданным в массиве points

Rectangle(x1,y1,x2,y2)

Вычерчивает и заполняет прямоугольник (х1,у1)‑(х2,у2)

Refresh

Устанавливает перо, кисть и шрифт по умолчанию

TextHeight(const Text:string):integer

Возвращает высоту прямоугольника, охватывающего текстовую строку Text

TextOut(x,y:integer;const Text:string)

Выводит текстовую строку Text так, чтобы левый верхний угол прямоугольника, охватывающего текст, располагался в точке (x,y)

TextWidth(const Text:string):integer

Возвращает ширину прямоугольника, охватывающего текстовую строку Text

TextRect(rect:Trect; x,y:integer; Text:string);

Выводит текстовую строку Text так, чтобы левый верхний угол прямоугольника, охватывающего текст, располагался в точке (x,y)