Кість

Кість (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.