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