加入收藏在线咨询
位置:主页 >

万趣娱乐注册:再学GDI+64 路径画刷(4)还是 SetCenterColor、SetSurround

作者:dudu时间:11月23日浏览:


在本例中没有指定 CenterColor, 将默认白色;

SurroundColors 原本是对应路径中的点(但按下面的做法在椭圆里不灵).

本例效果图:

代码文件:unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs;

type

TForm1 = class(TForm)

procedure FormPaint(Sender: TObject);

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

uses GDIPOBJ, GDIPAPI;

procedure TForm1.FormPaint(Sender: TObject);

const

ColorArr: array[0..3]万趣娱乐注册 of TGPColor = ($FFFF0000, $FF00FF00, $FF0000FF, $FFFFFF00);

var

rt: TRect;

pts: array of TGPPoint;

g: TGPGraphics;

path1, path2: TGPGraphicsPath;

pb1,pb2: TGPPathGradientBrush;

num: Integer;

begin

rt := Bounds(10, 10, 150, 150);

g := TGPGraphics.Create(Canvas.Handle);

{矩形路径}

path1 := TGPGraphicsPath.Create;

path1.AddRectangle(MakeRect(rt));

pb1 := TGPPathGradientBrush.Create(path1);

num := 4;

pb1.SetSurroundColors(PARGB(@ColorArr), num);

g.FillPath(pb1, path1万趣娱乐注册);

{三角形路径}

OffsetRect(rt, 160, 0);万趣娱乐注册

SetLength(pts, 3);

pts[0] := MakePoint(rt.Left + (rt.Right-rt.Left) p 2, rt.Top);

pts[1] := MakePoint(rt.Left, rt.Bottom);

pts[2] := TGPPoint(rt.BottomRight);

path2 := TGPGraphicsPath.Create;

path2.AddPolygon(PGPPoint(pts), Len万趣娱乐注册gth(pts));

pb2 := TGPPathGradientBrush.Create(path2);

num := 3;

pb2.SetSurroundColors(PARGB(@ColorArr), num);

g.FillPath(pb2, path2);

pb1.Free;

pb2.Free;

path1.Free;

path2.Free;

g.Free万趣娱乐注册;

end;

end.

窗体文件:object Form1: TForm1

Left = 0

Top = 0

Caption = 'Form1'

ClientHeight = 172

ClientWidth = 327

Color = clBtnFace

Font.Charset = DEFAULT_CHARSET

Font.Color = clWindowText

Font.Height = -11

Font.Name = 'Tahoma'

Font.Style = []

OldCreateOrder = False

Position = poDesktopCenter

OnPaint = FormPaint

PixelsPerInch = 96

TextHeight = 13

end

电话:13866999966
联系人:王经理
Q Q:88996699
邮箱:admin@dede58.com
地址:中国XX省XX市XX路XX号