property Handle: HDC;

Для рисования канва включает в себя шрифт, перо и кисть:

property Font: TFont ;
property Pen: TPen;
property Brush: TBrush;

Кроме того, можно рисовать и поточечно, получив доступ к каждому пикселу. Значение свойства:

property Pixels [X, Y: Integer] : TColor; соответствует цвету точки с координатами X, Y.

Необходимость отрисовывать каждую точку возникает нередко. Однако, если нужно модифицировать все или хотя бы многие точки изображения, свойство Pixels надо сразу отбросить - настолько оно неэффективно. Гораздо быстрее редактировать изображение при помощи свойства ScanLine объекта TBitmap; об этом рассказано ниже.

Канва содержит методы-надстройки над всеми основными функциями рисования GDI Windows и свойства, которые приведены в табл. 10.4 и 10.5. При их рассмотрении имейте в виду, что все геометрические фигуры рисуются текущим пером. Те из них, которые можно закрашивать, закрашиваются с помощью текущей кисти. Кисть и перо при этом имеют текущий цвет.

Таблица 10.4. Методы класса TCanvas

Метод

Описание

procedure Arc (Xi, Yi, Х2,

Метод рисует сегмент эллипса. Эллипс определя-

Y2, ХЗ, Y3, Х4, Y4:

ется описывающим прямоугольником (Х1,У1)-

Integer);

(Х2, У2); его размеры должны лежать в диапа-

зоне от 2 до 32 767 точек.

Начальная точка сегмента лежит на пересече-

нии эллипса и луча, проведенного из его центра

через точку (ХЗ, УЗ). Конечная точка сегмента

лежит на пересечении эллипса и луча, прове-

денного из его центра через точку (Х4, У4). Сег-

мент рисуется противчасо вой стрелки

Таблица 10.4 (продолжение)

Метод

Описание

procedure Chord (XI, Yl, X2, Y2, X3, Y3, X4, Y4: Integer);

Рисует хорду и заливает отсекаемую ею часть эллипса. Эллипс, начальная и конечная точки определяются, как в методе Arc

procedure Ellipse (XI, Yl, X2, Y2: Integer);

Рисует и закрашивает эллипс, вписанный в прямоугольник (Х1, Y1) - (Х2, Y2)

procedure LineTo(X, Y: Integer) ;

Проводит линию текущим пером из текущей точки в (X, Y)

procedure MoveTo (X, Y: Integer) ;

Перемещает текущее положение пера (свойство PenPos) в точку (X, Y)

procedure BrushCopy(const Dest: TRect;
Bitmap: TBitmap;
const Source: TRect;
Color: TColor);

Производит специальное копирование. Прямоугольник Source из битовой карты Bitmap копируется в прямоугольник Dest на канве; при этом цвет Color заменяется на цвет текущей кисти (Brush.Color).

С помощью этого метода можно нарисовать "прозрачную" картинку. Для этого нужно выбрать соответствующий фону цвет кисти и затем заменить на него фоновый или наиболее часто встречающийся цвет битовой карты (см. Bitmap.TransparentColor)

procedure CopyRect(const Dest: TRect;
Canvas: TCanvas;
const Source: TRect);

Производит копирование прямоугольника Source из канвы Canvas в прямоугольник Dest в области самого объекта

procedure FillRect(const Rect: TRect);

Производит заливку прямоугольника (текущей кистью)

procedure FrameRect(const Rect: TRect);

Осуществляет рисование контура прямоугольника цветом текущей кисти (без заполнения)

procedure Draw(X, Y: Integer;
Graphic: Tgraphic);

Осуществляет рисование графического объекта Graphic (точнее, вызов метода его рисования) в области с верхним левым углом (X, Y)

procedure StretchDraw(const Rect: TRect;
Graphic: TGraphic);

Осуществляет рисование объекта Graphic в заданном прямоугольнике Rect. Если их размеры не совпадают, Graphic масштабируется

procedure DrawFocusRect(const Rect: TRect);

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

Таблица 10.4(окончание)


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Октябрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс