利用TCHART做分离饼形图

https://www.cnblogs.com/gaodu2003/archive/2009/06/18/1505720.html

unit Unit1;

interface

……
type
  TForm1 = class(TForm)
    Chart1: TChart;
    Series1: TPieSeries;
……
var
  Form1: TForm1;
  ps: TPieSeries;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  ps.Free;
  ps := TPieSeries.Create(self);
  ps.Clear;
  ps.Repaint;

  ps.CustomXRadius := 70;
  ps.CustomYRadius := 70;
  ps.Marks.Arrow.Visible := False;
  ps.Marks.ArrowLength := -50;
  ps.Marks.Transparent := True;
  ps.Marks.Frame.Visible := False;
  ps.Marks.Style := smsLabel;
  ps.ParentChart := Chart1;
  ps.AddPie(10, '第一部分', clRed);
  ps.AddPie(20, '第二部分', clGreen);
  ps.AddPie(5, '第三部分', clBlue);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  MoveDesPart(1);
end;

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

procedure TForm1.Button3Click(Sender: TObject);
begin
  MoveDesPart(3);
end;

procedure TForm1.MoveDesPart(i: Integer);
var
  j: Integer;
begin
  for j := 1 to 3 do
    begin
    if j = i then
      begin
      ps.ExplodedSlice.Value[j-1] := 10;
      end
    else
      begin
      ps.ExplodedSlice.Value[j-1] := 0;
      end;
    end;
end;

end.

posted on 2019-05-28 10:43 都市随缘 阅读(...) 评论(...) 编辑 收藏

导航