![26153638_LFLC.gif](http://static.oschina.net/uploads/img/201409/26153638_LFLC.gif)
代码文件:
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) procedure FormPaint(Sender: TObject); procedure FormClick(Sender: TObject); end;var Form1: TForm1;implementation{$R *.dfm}uses GDIPOBJ, GDIPAPI;procedure TForm1.FormPaint(Sender: TObject);var g: TGPGraphics; b: TGPSolidBrush; path: TGPGraphicsPath; rgn: TGPRegion; Matrix: TGPMatrix; RectCount: Integer; rts: array of TGPRect; i: Integer;begin g := TGPGraphics.Create(Canvas.Handle); b := TGPSolidBrush.Create(MakeColor(50, 0, 0, 255)); path := TGPGraphicsPath.Create; path.AddEllipse(MakeRect(20, 10, ClientWidth-40, ClientHeight-20)); rgn := TGPRegion.Create(path); Matrix := TGPMatrix.Create; {它在本例中只是个摆设, 因为参选需要} RectCount := rgn.GetRegionScansCount(Matrix); SetLength(rts, RectCount); rgn.GetRegionScans(Matrix, PGPRect(rts), RectCount); Randomize; for i := 0 to RectCount - 1 do begin b.SetColor(ColorRefToARGB(Random($FFFFFF))); g.FillRectangle(b, rts[i]); end; Matrix.Free; rgn.Free; path.Free; b.Free; g.Free;end;procedure TForm1.FormClick(Sender: TObject);begin Repaint;end;end.窗体文件:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 217 ClientWidth = 219 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False Position = poDesktopCenter OnClick = FormClick OnPaint = FormPaint PixelsPerInch = 96 TextHeight = 13end