Карандаш и кисть
Методы вычерчивания графических примитивов обеспечивают только вычерчивание. Вид графического элемента определяют свойства Ре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); }