2014-06-19 18 views
0

我想在Delphi XE5創建這種類型的圖表與精簡版的TeeChart:的管路件T恤中的圖表精簡版XE5

所以我點(X1,Y1),(X2,Y2 ),...,(xk,yk)。點(x1,y1),(x2,y2)形成線條號碼(012),其中x1,y2, 1.

第二行代碼是(x3,y3),(x4,y4)等等。注意(x2,y2)與(x3,y3)不同,它們不是相同的點。

隨着發球臺精簡版有可能在XE5中創建這樣一個圖表嗎?

+0

我嘗試使用標準Tfastlineseries,然後使中間看不見的一條線,但它沒有工作。 – user3757341

回答

2

對TeeChart有不同的選擇。

  • 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;