Кисть (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.
Источник: http://qo.do.am/index/teorija_po_programirovaniju/0-47 СОДЕРЖАНИЕ Delphi 7 |