本例效果图:
代码文件:
代码文件:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) RadioGroup1: TRadioGroup; procedure FormCreate(Sender: TObject); procedure FormPaint(Sender: TObject); procedure RadioGroup1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses GDIPOBJ,GDIPAPI; procedure TForm1.FormCreate(Sender: TObject); begin RadioGroup1.Caption := '制作画笔的画刷'; RadioGroup1.Items.CommaText := '实心画刷,阴影画刷,纹理画刷,渐变画刷'; RadioGroup1.ItemIndex := 0; end; procedure TForm1.FormPaint(Sender: TObject); var g: TGPGraphics; p: TGPPen; img: TGPImage; b: TGPBrush; begin g := TGPGraphics.Create(Canvas.Handle); img := TGPImage.Create('c:\temp\small.jpg'); {文件要存在} case RadioGroup1.ItemIndex of 0: b := TGPSolidBrush.Create(aclRed); 1: b := TGPHatchBrush.Create(HatchStyleSolidDiamond, aclYellow, aclCornflowerBlue); 2: b := TGPTextureBrush.Create(img); 3: b := TGPLinearGradientBrush.Create( MakePoint(0,0), MakePoint(ClientWidth - RadioGroup1.Width, ClientHeight), aclYellow, aclRed ); end; p := TGPPen.Create(b, 24); g.DrawEllipse(p, 30, 30, ClientWidth-RadioGroup1.Width-60, ClientHeight-60); g.DrawLine(p, 0, 0, ClientWidth-RadioGroup1.Width, ClientHeight); img.Free; b.Free; p.Free; g.Free; end; procedure TForm1.RadioGroup1Click(Sender: TObject); begin Repaint; end; end.窗体文件:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 206 ClientWidth = 339 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 RadioGroup1: TRadioGroup Left = 248 Top = 0 Width = 91 Height = 206 Align = alRight Caption = 'RadioGroup1' TabOrder = 0 OnClick = RadioGroup1Click end end