Кисть Кисть
(canvas.Brush) используется методами, обеспечивающими вычерчивание замкнутых
областей, например геометрических фигур, для заливки (закрашивания) этих
областей. Кисть, как объект, обладает двумя свойствами, перечисленными в табл.
10.5. Таблица
10.5. Свойства объекта TBrush (кисть)
Область внутри
контура может быть закрашена или заштрихована. В первом случае область полностью
перекрывает фон, а во втором — сквозь незаштрихованные участки области будет
виден фон. В качестве
значения свойства Color можно использовать любую из констант типа TColor (см.
список констант для свойства Pen.color в табл. 10.2). Константы,
позволяющие задать стиль заполнения области, приведены в табл.
10.6. Таблица
10.6. Значения свойства Brush, style определяют тип
закрашивания
В качестве
примера в листинге 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. |