Пропустить навигацию.
Главная

Что позволяют рисовать системы BCB и Delphi?

Канва — объект типа TCanvas, — в качестве самостоятельного объекта обычно не выступает. Как правило, она является свойством тех компонент, на которых можно рисовать или воспроизводить графические изображения. Кроме упоминавшихся выше пера (объекта типа TPen) и кисти (объекта типа TBrush) в состав канвы встроены следующие объекты, выступающие в качестве ее свойств:

  • позиция пера (объект типа PenPos), фиксирующая текущие координаты пера на канве (PenPos.x и PenPos.y);
  • шрифт (объект типа TFont), определяющий состав и конфигурацию символов, их высоту, цвет и способ отображения надписей (подчерк, наклон, толщина контуров);
  • двумерный массив пикселов (объект типа TPixels), заполняющих прямоугольную рабочую область канвы и фиксирующих цвет каждой точки.

Свойство Canvas и его характеристики доступны только во время работы приложения. Поэтому методы и характеристики канвы можно использовать только программным путем. Стандартная система координат канвы похожа на экранную — начало располагается в левом верхнем углу объекта, ось x направлена вправо, ось y — вниз, координаты измеряются в пикселах. Поэтому все операции, связанные с масштабированием геометрических фигур, возлагаются на программу пользователя.

Положение текущей точки или позиции пера, определяемой свойством PenPos — переменной типа TPoint, можно изменить обычными операторами присваивания:

TPoint A=Point(20,30); //BCB

имя_объекта->Canvas->PenPos = A; //BCB

имя_объекта->Canvas->PenPos.x=20; //BCB

имя_объекта->Canvas->PenPos.y=30; //BCB

имя_объекта.Canvas.PenPos.x:=20; {Delphi}

имя_объекта.Canvas.PenPos.y:=30; {Delphi}

Точно такого же эффекта можно добиться обращением к методу MoveTo:

имя_объекта->Canvas->MoveTo(20,30); //BCB

имя_объекта.Canvas.MoveTo(20,30); {Delphi}

Наконец, положение текущей точки можно изменить, отобразив точку с указанными координатами путем присвоения нужного цвета элементу массива Pixels:

имя_объекта->Canvas->Pixels[0][30]=clRed; //BCB

имя_объекта.Canvas.Pixels[20,30]=clRed; {Delphi}