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字形构成的水平线。 |