測試效果圖:
測試代碼:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormPaint(Sender: TObject);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses GdiPlus, GdiPlusHelpers;
var
Pt: TGPPointF;
procedure TForm1.FormPaint(Sender: TObject);
var
Brush: IGPPathGradIEntBrush;
Rect: TGPRect;
Path: IGPGraphicsPath;
begin
Rect.Initialize(10, 10, 200, 150);
Path := TGPGraphicsPath.Create;
Path.AddEllipse(Rect);
Brush := TGPPathGradIEntBrush.Create(Path);
Brush.CenterColor := $FF00FF00;
Brush.SetSurroundColors([$FF000000]);
Brush.SetCenterPoint(Pt);
Canvas.ToGPGraphics.FillEllipse(Brush, Rect);
Canvas.ToGPGraphics.DrawRectangle(TGPPen.Create($FFFF0000), Pt.X-3, Pt.Y-3, 6, 6);
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Pt.X := X;
Pt.Y := Y;
Repaint;
end;
end.