Кість (canvas.Brush) використовується методами, що забезпечують креслення замкнутих областей, наприклад геометричних фігур, для заливки (зафарбовування) цих областей. Кість, як об’єкт, володіє двома властивостями, перерахованими в табл. 10.5.
Таблиця 10.5. Властивості об’єкта TBrush (кисть)
Властивість | Визначає |
Color | Колір зафарбовування замкнутої області |
Style | Стиль (тип) заповнення області |
Область всередині контуру може бути зафарбована або заштрихована. У першому випадку область повністю перекриває фон, а в другому – крізь не заштриховані ділянки області буде видно фон.
Як значення властивості Color можна використовувати будь-яку з констант типу TColor (див. список констант для властивості Pen.color в табл. 10.2).
Константи, що дозволяють задати стиль заповнення області, наведені в табл. 10.6.
Таблиця 10.6. Значення властивості Brush, style визначають тип зафарбовування
Константа | Тип заповнення (заливки) області |
bsSolid | Хмарно заливка |
bsClear | області не зафарбовується |
bsHorizontal | Горизонтальна штрихування |
bsVertical | Вертикальна штрихування |
bsFDiagonal | Діагональна штриховка з нахилом ліній вперед |
bsBDiagonal | Діагональна штриховка з нахилом ліній назад |
bsCross | Горизонтально-вертикальна штрихування, в клітку |
bsDiagCross | Діагональна штриховка, в клітку |
Як приклад в лістингу 10.1 приведена програма Стилі заповнення областей, яка в вікно (рис. 10.2) виводить вісім прямокутників, зафарбованих чорним кольором з використанням різних стилів.
Рис. 10.2. Вікно програми Стилі заповнення областей
Лістинг 10.1. Стилі заповнення областей
unit brustyle_; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class (TForm) procedure FormPaint (Sender: TObject); private { Private declarations} public { Public declarations) end; var Form1: TForm1; implementation {$ R * .DFM} // перерисовка форми procedure TForm1.FormPaint (Sender: TObject); const bsName: array [1..8] of string = ( 'bsSolid', 'bsClear', 'bsHorizontal', 'bsVertical', 'bsFDiagonal', 'bsBDiagonal', 'bsCross', 'bsDiagCross'); var x, y: integer; // координати лівого верхнього кута прямокутника w, h: integer; // ширина і висота прямокутника bs: TBrushStyle; // стиль заповнення області k: integer; // номер стилю заповнення i, j: integer; begin w: = 40; h: = 40; // розмір області (прямокутника) у: = 20; for i: = l to 2 do begin х: = 10; for j: = 1 to 4 do begin k: = j + (i-1) * 4; // номер стилю заповнення case k of 1: bs = bsSolid; 2: bs = bsClear; 3: bs = bsHorizontal; 4: bs = bsVertical; 5: bs = bsFDiagonal; 6: bs = bsBDiagonal; 7: bs = bsCross; 8: bs = bsDiagCross; end; // висновок прямокутника Canvas.Brush.Color : = ClGreen; // колір зафарбовування - зелений Canvas.Brush.Style : = Bs; // стиль зафарбовування Canvas . Rectangle (x, y, x + w, y-t-h); // висновок назви стилю Canvas.Brush.Style : = BsClear; Canvas.TextOut (x, y-15, bsName [k]); // висновок назви стилю x : = X + w + 30; end; у : = Y + h + 30; end; end; end.