Using a separation pie chart 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. the Visible: = False;
  ps.Marks.Style: = smsLabel;
  ps.ParentChart: = Chart1;
  ps.AddPie (10, 'a first portion', clRed);
  ps.AddPie (20 is, 'second part', clGreen);
  ps.AddPie (5, 'part', 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.

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. the Visible: = False;
  ps.Marks.Style: = smsLabel;
  ps.ParentChart: = Chart1;
  ps.AddPie (10, 'a first portion', clRed);
  ps.AddPie (20 is, 'second part', clGreen);
  ps.AddPie (5, 'part', 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.

Guess you like

Origin www.cnblogs.com/gaodu2019/p/10935762.html