本例效果图:
代码文件:
代码文件:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, CheckLst; 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; font: TGPFont; 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(HatchStyleCross, aclSilver, aclRed); 2: b := TGPTextureBrush.Create(img); 3: b := TGPLinearGradientBrush.Create( MakePoint(0,0), MakePoint(ClientWidth - RadioGroup1.Width, ClientHeight), aclYellow, aclRed ); end; font := TGPFont.Create('Arial Black', 60, FontStyleBold); g.DrawString('Delphi', -1, font, MakePoint(0.0,0), b); img.Free; b.Free; font.Free; g.Free; end; procedure TForm1.RadioGroup1Click(Sender: TObject); begin Repaint; end; end.窗体文件:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 120 ClientWidth = 399 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 = 308 Top = 0 Width = 91 Height = 120 Align = alRight Caption = 'RadioGroup1' TabOrder = 0 OnClick = RadioGroup1Click ExplicitLeft = 248 ExplicitHeight = 206 end end