本例效果圖:
代碼文件:unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin, ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses GDIPOBJ, GDIPAPI;
var
a1,a2: Integer;
procedure TForm1.FormCreate(Sender: TObject);
begin
a1 := 0;
a2 := 30;
SpinEdit1.Text := IntToStr(a1);
SpinEdit2.Text := IntToStr(a2);
SpinEdit1.Increment := 10;
SpinEdit2.Increment := 10;
SpinEdit1.OnChange := FormPaint;
SpinEdit2.OnChange := FormPaint;
end;
procedure TForm1.FormPaint(Sender: TObject);
var
g: TGPGraphics;
p: TGPPen;
x,y,w,h: Integer;
begin
g := TGPGraphics.Create(Canvas.Handle);
p := TGPPen.Create(aclRed, 2);
g.Clear(aclWhite);
x := ClientWidth p 6;
y := ClientHeight p 6;
w := x * 4;
h := y * 3;
a1 := StrToIntDef(SpinEdit1.Text, 0);
a2 := StrToIntDef(SpinEdit2.Text, 30);
g.DrawPie(p, x, y, w, h, a1, a2);
g.Free;
p.Free;
end;
end.