One series and null points。您可以在每個段之後添加一個空點,以便系列中的行不會連接。即:
uses Series;
procedure TForm1.FormCreate(Sender: TObject);
procedure AddSegment(Series: TChartSeries; X0, Y0, X1, Y1: Double);
begin
Series.AddXY(X0, Y0);
Series.AddXY(X1, Y1);
Series.AddNullXY(X1, Y1);
end;
var fastLine1: TFastLineSeries;
begin
Chart1.View3D:=false;
fastLine1:=Chart1.AddSeries(TFastLineSeries) as TFastLineSeries;
fastLine1.TreatNulls:=tnDontPaint;
AddSegment(fastLine1, 0, 1, 1, 2);
AddSegment(fastLine1, 2, 1, 3, 0);
AddSegment(fastLine1, 4, 2, 5, 3);
end;
多個系列。。您可以爲每個細分市場設置一個系列。即:
uses Series;
procedure TForm1.FormCreate(Sender: TObject);
procedure AddSegment(Chart: TChart; X0, Y0, X1, Y1: Double);
begin
with Chart.AddSeries(TFastLineSeries) do
begin
AddXY(X0, Y0);
AddXY(X1, Y1);
Color:=Chart[0].Color;
end;
end;
begin
Chart1.View3D:=false;
AddSegment(Chart1, 0, 1, 1, 2);
AddSegment(Chart1, 2, 1, 3, 0);
AddSegment(Chart1, 4, 2, 5, 3);
end;
一個DrawLineTool。該工具允許您直接用鼠標繪製線段,或者通過代碼添加它們。即:
uses Series, TeeTools;
procedure TForm1.FormCreate(Sender: TObject);
procedure AddSegment(tool: TDrawLineTool; X0, Y0, X1, Y1: Double);
begin
tool.Lines.AddLine(X0, Y0, X1, Y1);
end;
var drawLineTool1: TDrawLineTool;
begin
Chart1.View3D:=false;
Chart1.Axes.Bottom.SetMinMax(0, 5);
Chart1.Axes.Left.SetMinMax(0, 3);
Chart1.AddSeries(TFastLineSeries);
drawLineTool1:=Chart1.Tools.Add(TDrawLineTool) as TDrawLineTool;
AddSegment(drawLineTool1, 0, 1, 1, 2);
AddSegment(drawLineTool1, 2, 1, 3, 0);
AddSegment(drawLineTool1, 4, 2, 5, 3);
end;
我嘗試使用標準Tfastlineseries,然後使中間看不見的一條線,但它沒有工作。 – user3757341