Программирование с C++ Builder

           

Карандаш и кисть



Методы вычерчивания графических примитивов обеспечивают только вычерчивание. Вид графического элемента определяют свойства Реn(карандаш) и Brush (кисть) той поверхности (Canvas), на которой рисует метод.

Карандаш и кисть, являясь свойствами объекта Canvas, в свою очередь представляют собой объекты Реn и Brush. Свойства объекта Реп (табл. 3.2) задают цвет, толщину и тип линии или границы геометрической фигуры. Свойства объекта Brush (табл. 3.3) задают цвет и способ закраски области внутри прямоугольника, круга, сектора или замкнутого контура.

Таблица 3.2. Свойства объекта Реn (карандаш)

Свойство


Определяет
Color
Цвет линии
Width
Толщину линии (задается в пикселах)
Style
Вид линии (psSolid— сплошная; psDash— пунктирная, длинные штрихи; psDot — пунктирная, короткие штрихи; psDashDot — пунктирная, чередование длинного и короткого штрихов; psDashDotDot — пунктирная, чередование одного длинного и двух коротких штрихов; psClear — линия не отображается (используется, если не надо изображать границу области — например, прямоугольника)


Таблица 3.3. Свойства объекта Brush (кисть)

Свойство
Определяет
Color
Цвет закрашивания замкнутой области
Style
Стиль заполнения области (bsSolid — сплошная заливка. Штриховка: bsHorizontal — горизонтальная; bsVertical — вертикальная; bsFDiagonal — диагональная с наклоном линий вперед; bsBDiagonal — диагональная с наклоном линий назад; bsCross — в клетку; bsDiagCross — диагональная клетка


Ниже приведена функция обработки события onPain, которая рисует на поверхности формы олимпийский флаг.

void__fastcall TForml::FormPaint(TObject *Sender)
{
// полотнище флага
Canvas->Pen->Width = 1;
Canvas->Pen->Color = clBlack;
Canvas->Brush->Color = clCream;
Canvas->Rectangle(30,30,150,150);
Canvas->Pen->Width =2; // ширина колец
Canvas->Brush->Style = bsClear; // чтобы круг, нарисованный
// методом Ellipse, не был закрашен
// рисуем кольца
Canvas->Pen->Color = clBlue; Canvas->Ellipse(40,40,80,80) ;
Canvas->Pen->Color = clBlack; Canvas->Ellipse(70,40,110,80);
Canvas->Pen->Color = clRed; Canvas->Ellipse(100,40,140,80);
Canvas->Pen->Color = clYellow; Canvas->Ellipse(55,65,95,105);
Canvas->Pen->Color = clGreen; Canvas->Ellipse(85,65,125,105);
}

Содержание раздела