您的位置:首页 > 编程语言 > Go语言

再学 GDI+[9] DrawPolygon - 绘制多边形

2010-12-31 10:54 766 查看
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormPaint(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
uses
GDIPOBJ,GDIPAPI;
var
i:Integer = 0;
PtArr:array of TGPPoint;
procedure TForm1.Button1Click(Sender: TObject);
begin
i:=0;
SetLength(PtArr,i);
Text:=IntToStr(i);
Repaint;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Repaint;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Canvas.Ellipse(x-2,y-2,x+2,y+2);
Inc(i);
SetLength(PtArr,i);
PtArr[i-1]:=MakePoint(x,y);
Text:=IntToStr(i);
end;

procedure TForm1.FormPaint(Sender: TObject);
var
g:TGPGraphics;
p:TGPPen;
begin
g:=TGPGraphics.Create(Canvas.Handle);
g.Clear(aclWhite);
p:=TGPPen.Create(aclRed,2);

{如果是动态数组的话, 需要 @PtArr, 但动态数组本身就是个指针}
g.DrawPolygon(p,PGPPoint(PtArr),Length(PtArr));

p.Free;
g.Free;
end;

end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: