TGPHatchBrush.Create(
hatchStyle: THatchStyle; {阴影样式, 见下表}
foreColor: TGPColor; {前景色}
backColor: TGPColor = aclBlack {背景色, 是可选值, 默认是黑色}
);
本例效果图:
代码文件:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
ColorBox1: TColorBox;
ColorBox2: TColorBox;
ComboBox1: TComboBox;
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure ColorBox1Change(Sender: TObject);
procedure ColorBox2Change(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses GDIPOBJ, GDIPAPI, TypInfo;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
{把画刷样式枚举 HatchStyle 中的所有项添加到列表}
for i := 0 to Integer(HatchStyleTotal) - 1 do
ComboBox1.Items.Add(GetEnumName(TypeInfo(HatchStyle), i));
{给三个列表初始值}
ComboBox1.ItemIndex := 0;
ColorBox1.ItemIndex := 16;
ColorBox2.ItemIndex := 3;
end;
procedure TForm1.FormPaint(Sender: TObject);
var
g: TGPGraphics;
r: TGPRect;
hb: TGPHatchBrush;
fColor,bColor: TGPColor;
hbStyle: HatchStyle;
begin
g := TGPGraphics.Create(Canvas.Handle);
g.Clear(MakeColor(255,255,255));
r := MakeRect(20, 60, ClientWidth - 40, ClientHeight - 70);
hbStyle := HatchStyle(ComboBox1.ItemIndex); {列表的序号和对应的枚举值是一样的}
fColor := ColorRefToARGB(ColorBox1.Selected); {前景色}
bColor := ColorRefToARGB(ColorBox2.Selected); {背景色}
{建立样式画刷}
hb := TGPHatchBrush.Create(hbStyle, fColor, bColor);
g.FillEllipse(hb, r);
hb.Free;
g.Free;
end;
procedure TForm1.ColorBox1Change(Sender: TObject);
begin
Repaint;
end;
procedure TForm1.ColorBox2Change(Sender: TObject);
begin
Repaint;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Repaint;
end;
end.
窗体文件:object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 206
ClientWidth = 268
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poDesktopCenter
OnCreate = FormCreate
OnPaint = FormPaint
PixelsPerInch = 96
TextHeight = 13
object ColorBox1: TColorBox
Left = 48
Top = 30
Width = 100
Height = 22
ItemHeight = 16
TabOrder = 0
OnChange = ColorBox1Change
end
object ColorBox2: TColorBox
Left = 160
Top = 30
Width = 100
Height = 22
ItemHeight = 16
TabOrder = 1
OnChange = ColorBox2Change
end
object ComboBox1: TComboBox
Left = 48
Top = 3
Width = 212
Height = 21
ItemHeight = 13
TabOrder = 2
Text = 'ComboBox1'
OnChange = ComboBox1Change
end
end
画刷阴影样式表:| Delphi | 微软 | 说明 |
|---|---|---|
| HatchStyleBackwardDiagonal | BackwardDiagonal | 从右上到左下的对角线的线条图案。 |
| HatchStyleCross | Cross | 指定交叉的水平线和垂直线。 |
| HatchStyleDarkDownwardDiagonal | DarkDownwardDiagonal | 指定从顶点到底点向右倾斜的对角线,其两边夹角比ForwardDiagonal小50%,宽度是其两倍。此阴影图案不是锯齿消除的。 |
| HatchStyleDarkHorizontal | DarkHorizontal | 指定水平线的两边夹角比Horizontal小50%并且宽度是Horizontal的两倍。 |
| HatchStyleDarkUpwardDiagonal | DarkUpwardDiagonal | 指定从顶点到底点向左倾斜的对角线,其两边夹角比BackwardDiagonal小50%,宽度是其两倍,但这些直线不是锯齿消除的。 |
| HatchStyleDarkVertical | DarkVertical | 指定垂直线的两边夹角比Vertical小50%并且宽度是其两倍。 |
| HatchStyleDashedDownwardDiagonal | DashedDownwardDiagonal | 指定虚线对角线,这些对角线从顶点到底点向右倾斜。 |
| HatchStyleDashedHorizontal | DashedHorizontal | 指定虚线水平线。 |
| HatchStyleDashedUpwardDiagonal | DashedUpwardDiagonal | 指定虚线对角线,这些对角线从顶点到底点向左倾斜。 |
| HatchStyleDashedVertical | DashedVertical | 指定虚线垂直线。 |
| HatchStyleDiagonalBrick | DiagonalBrick | 指定具有分层砖块外观的阴影,它从顶点到底点向左倾斜。 |
| HatchStyleDiagonalCross | DiagonalCross | 交叉对角线的图案。 |
| HatchStyleDivot | Divot | 指定具有草皮层外观的阴影。 |
| HatchStyleDottedDiamond | DottedDiamond | 指定互相交叉的正向对角线和反向对角线,每一对角线都是由点构成的。 |
| HatchStyleDottedGrid | DottedGrid | 指定互相交叉的水平线和垂直线,每一直线都是由点构成的。 |
| HatchStyleForwardDiagonal | ForwardDiagonal | 从左上到右下的对角线的线条图案。 |
| HatchStyleHorizontal | Horizontal | 水平线的图案。 |
| HatchStyleHorizontalBrick | HorizontalBrick | 指定具有水平分层砖块外观的阴影。 |
| HatchStyleLargeCheckerBoard | LargeCheckerBoard | 指定具有棋盘外观的阴影,棋盘所具有的方格大小是SmallCheckerBoard大小的两倍。 |
| HatchStyleLargeConfetti | LargeConfetti | 指定具有五彩纸屑外观的阴影,并且它是由比SmallConfetti更大的片构成的。 |
| HatchStyleLargeGrid | LargeGrid | 指定阴影样式Cross。 |
| HatchStyleLightDownwardDiagonal | LightDownwardDiagonal | |
| HatchStyleLightHorizontal | LightHorizontal | 指定水平线,其两边夹角比Horizontal小50%。 |
| HatchStyleLightUpwardDiagonal | LightUpwardDiagonal | 指定从顶点到底点向左倾斜的对角线,其两边夹角比BackwardDiagonal小50%,但这些直线不是锯齿消除的。 |
| HatchStyleLightVertical | LightVertical | 指定垂直线的两边夹角比Vertical小50%。 |
| HatchStyleMax | Max | 指定阴影样式SolidDiamond。 |
| HatchStyleMin | Min | 指定阴影样式Horizontal。 |
| HatchStyleNarrowHorizontal | NarrowHorizontal | 指定水平线的两边夹角比阴影样式Horizontal小75%(或者比LightHorizontal小25%)。 |
| HatchStyleNarrowVertical | NarrowVertical | 指定垂直线的两边夹角比阴影样式Vertical小75%(或者比LightVertical小25%)。 |
| HatchStyleOutlinedDiamond | OutlinedDiamond | 指定互相交叉的正向对角线和反向对角线,但这些对角线不是锯齿消除的。 |
| HatchStylePercent05 | Percent05 | 指定5%阴影。前景色与背景色的比例为5:100。 |
| HatchStylePercent10 | Percent10 | 指定10%阴影。前景色与背景色的比例为10:100。 |
| HatchStylePercent20 | Percent20 | 指定20%阴影。前景色与背景色的比例为20:100。 |
| HatchStylePercent25 | Percent25 | 指定25%阴影。前景色与背景色的比例为25:100。 |
| HatchStylePercent30 | Percent30 | 指定30%阴影。前景色与背景色的比例为30:100。 |
| HatchStylePercent40 | Percent40 | 指定40%阴影。前景色与背景色的比例为40:100。 |
| HatchStylePercent50 | Percent50 | 指定50%阴影。前景色与背景色的比例为50:100。 |
| HatchStylePercent60 | Percent60 | 指定60%阴影。前景色与背景色的比例为60:100。 |
| HatchStylePercent70 | Percent70 | 指定70%阴影。前景色与背景色的比例为70:100。 |
| HatchStylePercent75 | Percent75 | 指定75%阴影。前景色与背景色的比例为75:100。 |
| HatchStylePercent80 | Percent80 | 指定80%阴影。前景色与背景色的比例为80:100。 |
| HatchStylePercent90 | Percent90 | 指定90%阴影。前景色与背景色的比例为90:100。 |
| HatchStylePlaid | Plaid | 指定具有格子花呢材料外观的阴影。 |
| HatchStyleShingle | Shingle | 指定带有对角分层鹅卵石外观的阴影,它从顶点到底点向右倾斜。 |
| HatchStyleSmallCheckerBoard | SmallCheckerBoard | 指定带有棋盘外观的阴影。 |
| HatchStyleSmallConfetti | SmallConfetti | 指定带有五彩纸屑外观的阴影。 |
| HatchStyleSmallGrid | SmallGrid | 指定互相交叉的水平线和垂直线,其两边夹角比阴影样式Cross小50%。 |
| HatchStyleSolidDiamond | SolidDiamond | 指定具有对角放置的棋盘外观的阴影。 |
| HatchStyleSphere | Sphere | 指定具有球体彼此相邻放置的外观的阴影。 |
| HatchStyleTrellis | Trellis | 指定具有格架外观的阴影。 |
| HatchStyleVertical | Vertical | 垂直线的图案。 |
| HatchStyleWave | Wave | 指定由代字号“~”构成的水平线。 |
| HatchStyleWeave | Weave | 指定具有织物外观的阴影。 |
| HatchStyleWideDownwardDiagonal | WideDownwardDiagonal | 指定从顶点到底点向右倾斜的对角线,其间距与阴影样式ForwardDiagonal相同,宽度是其三倍,但它们不是锯齿消除的。 |
| HatchStyleWideUpwardDiagonal | WideUpwardDiagonal | 指定从顶点到底点向左倾斜的对角线,其间距与阴影样式BackwardDiagonal相同,宽度是其三倍,但它们不是锯齿消除的。 |
| HatchStyleZigZag | ZigZag | 指定由Z字形构成的水平线。 |