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