Иллюстрированный самоучитель по C++ Builder

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

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

Карандаш и кисть, являясь свойствами объекта Canvas, в свою очередь представляют собой объекты Реn и Brush. Свойства объекта Реn (табл. 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);
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.