Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 Mб
Скачать

2.2.8.4. Канва, ее свойства и графические методы (tCanvas)

Компонент используется для создания канвы (холста), на которой можно рисовать пером, кистью и шрифтом.

Свойства

ClipRect:TRect‑ текущие размеры для прорисовки.

CopyMode‑ способы взаимодействия изображения с цветом фона при ко­пи­ровании методомCopyRestчасти ‑ источника канвы в другую часть ‑ приемник:cmBlackness/cmWhitness(область заполняется черным/белым цветом),cmDestInvert(инверсный цвет фона),cmMergeCopy/cmMergePaint(объединение цвета изображения и копируемой части операциейAnd/Or),cmNotSrcCopy(инверсное изображение переносится на канву),cmNotScrErase(инверсный цвет отcmMergePaint),cmPatCopy(копи­ро­ва­ние образца источника),cmPatInvert(объединяет образец источника с изображением на канве операциейXor),cmPatPaint(объединяет источник с его образцом операциейOrи полученный результат объединяется с изображением на канве операциейOr),cmSrcAnd/cmScrInvert/cmScrPaint(объединяет источник и канву операциейAnd/Xor/Or),cmScrCopy(копирует источник на канву),cmScrErase(инвертирует изображение на канве и объединяет с источником операциейAnd).

Font, Pen‑ объекты шрифт и перо.

LockCount‑ счетчик блокировок канвы. Увеличивается/уменьшается на единицу методамиLock/Unlock.

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

Pixels[x,y:Integer]‑ массив координат пикселей канвы. Изменяя цвет пикселей можно рисовать по отдельным точкам.

Методы

Arc/Chord/Pie (x1,y1,x2,y2,x3,y3,x4,y4)‑ вывод против часовой стрелки дуги/сегмента/сектора эллипса в прямоугольнике (x1,y1) ‑ (x2,y2), начиная с точки (x3,y3) и кончая (x4,y4).

BrushCopy(Dest:TRet;Bitmap:TBitmap, Source:TRest,Color:TColor)‑ часть изображенияSourceкопируется на участок канвыDest. ЦветColorбудет заменен на цвет кисти канвы.

CopyRest(Dest:TRect;Canvas:TCanvas;Source:TRect)‑ изображениеSourceканвыCanvasкопируется на участок канвыDestтекущей канвы с учетом значений свойства канвыCopyMode.

Draw(x,y;Graphic:TGraphic)‑ прорисовка объектаGraphicс левым верхним углом (x,y).

DrawFocusRect(Rect:TRect)‑ прорисовка прямоугольника операциейXor. Повторная прорисовка уничтожает прямоугольник.

Ellipse(x1,y1,x2,y2)‑ вывод эллипса в прямоугольнике (x1,y1) ‑ (x2,y2) и заполняет его кистью.

FillRect(Rect:TRect)‑ заполняет кистью прямоугольникRect, кроме правой и нижней сторон.

FloodFill(x,y;Color:TColor;FillStyle:TFillStyle)‑ заливка канвы, начиная с точки (x,y) и далее во все стороны. ЕслиFillStyle=fsSurface/fsBorder, то заливка распространяется/прекращается на точках с цветомColor.

FramRect(Rect:TRect)‑ вывод границ (шириной 1 пиксель) прямоуголь­ни­ка без заполнения внутренней части.

LineTo(x,y)‑ вывести линию от текущего положения пера до точки (x,y).

Lock/Unlock‑ блокировка/разблокировка канвы в многопоточной обработке.

MoveTo(x,y)‑ переместить поднятое перо в точку (x,y).

Polygon/Polyline(Point:arrayofTPoint) ‑ вывод многоугольника/ломаной по вершинам из массиваPointс заполнением/без заполнения кистью.

Rectangle(x1,y1,x2,y2)‑ вывод и заполнение прямоугольника (x1,y1) ‑ (x2,y2).

Refresh‑ установление в канве умалчиваемых значений шрифта, пера, кисти.

RoundRect(x1,y1,x2,y2,x3,y3)‑ вывод и заполнение прямоугольника (x1,y1) ‑ (x2,y2) с закругленными углами эллипса в прямоугольнике (x1,y1) ‑ (x3,y3).

StretchDraw(Rect:TRect;Graphic:TGraphic)‑ вывод с растягиванием или со сжатием изображенияGraphicна весь прямоугольникRect.

TextExtent(S):TSize/TextHeight/TextWidth(s):Integer‑ возвращает ширину и высоту/только высоту/ширину прямоугольника со строкойS.

TextOut(x,y,s)‑ вывод строкиS, начиная с точки (x,y).

TextRect(Rect:TRect;x,y,s)‑ вывод строкиS, начиная с точки (x,y), с отсече­нием текста, выходящего за пределы прямоугольникаRect.

TryLock‑ попытки заблокировать канву (True‑ успешно).