• <menu id="w2i4a"></menu>
  • logo 【TeeChart VCL/FMX】教程2019

    文檔首頁>>【TeeChart VCL/FMX】教程2019>>TeeChart Pro VCL/FMX教程(六):使用系列(二)

    TeeChart Pro VCL/FMX教程(六):使用系列(二)


    下載TeeChart Pro VCL/FMX最新版本

        已加入在線訂購,現(xiàn)在搶購可立享特別優(yōu)惠?。?!

    在圖表上混合系列類型

        TeeChart Pro提供了一個空的Chart Canvas作為數(shù)據(jù)系列的背景。這意味著沒有預(yù)定義圖表類型。您可以將所需的圖表類型定義為要顯示的系列類型的混合。由于某些系列類型的特殊性質(zhì),在圖表上混合使用一些系列類型是不切實際的。當您添加新系列時,TeeChart會通過在圖表庫中顯示不適合的系列類型來幫助您。您可以在一個圖表中放置的系列數(shù)量沒有實際限制。

    添加新系列

        使用圖表編輯器(參見教程1)或按代碼添加系列。

    procedure TForm1.Button2Click(Sender: TObject);
    var tmpLineSeries:TLineSeries;
    begin
      tmpLineSeries:=TLineSeries.Create(self);
      Chart1.AddSeries(tmpLineSeries);
      tmpLineSeries.FillSampleValues(10);
    end;
    選擇系列的軸

        添加到圖表中的系列將自動將左軸和下軸作為參考軸。您可以通過選擇相關(guān)系列的“系列常規(guī)”頁面來更改圖表編輯器中的參考軸。有4個軸可供選擇,Top,Left,Bottom和Right。通過代碼,更改軸將如下所示:

    With Series1 do
    begin
     HorizAxis := aTopAxis;
     VertAxis := aRightAxis;
    end;

        每個軸可以關(guān)聯(lián)1個以上的系列。TeeChart將決定適合與Axis匹配的系列的最佳比例,但您可以自己更改Axis音階(參見Axis Tutorial)??梢蕴砑痈郊虞S,它們將復(fù)制與前4個軸相對應(yīng)的刻度(參見教程部分附加軸)。

    連接系列

        您可以使用Series作為另一個Series的數(shù)據(jù)源。通過設(shè)置第二系列的數(shù)據(jù)源,可以使用圖表編輯器完成此操作。轉(zhuǎn)到“系列”選項卡“數(shù)據(jù)源”頁面。選擇“Function”作為數(shù)據(jù)源類型。將出現(xiàn)兩個列表框,可用系列和選定系列。選擇要用作當前系列的數(shù)據(jù)源的系列,然后在上面名為Function:的Combobox中,選擇Copy作為功能類型。請注意,以這種方式,任何Series都可以定義為其他Series的函數(shù),F(xiàn)unction Type可以是Function組合框中可用的列表中的任何一個。要通過代碼執(zhí)行相同操作,請參閱下文:

    procedure TForm1.BitBtn2Click(Sender: TObject);
    begin
     With Series2 do
     begin
       Datasource:=Series1;
       SetFunction(TAverageTeeFunction.Create(Self));
       FunctionType.Period := 4;
       CheckDatasource;
     end
    end;
    更改系列訂單  

        使用圖表編輯器可以非常輕松地更改系列順序。轉(zhuǎn)到編輯器的首頁,突出顯示要移動的系列。使用右側(cè)的箭頭按鈕以系列順序向上或向下移動系列。系列訂單將決定系列在圖表中相對于其他系列的相對顯示位置。通過代碼使用SeriesList屬性或ExchangeSeries方法。

    Chart1.ExchangeSeries(0, 1);  //Change Series(0) with Series(1) in the index order

        注意。交換Series后,系列的索引將被更改。因此,如果代碼重新運行,上面的代碼行將永久地交換2系列'0'和'1',因為0變?yōu)?,1變?yōu)?。

    將系列設(shè)置為“Active:=False”將從圖表中隱藏系列,但保持其數(shù)據(jù)內(nèi)容不變。

    系列value表

        TeeChart系列通過TChartValueList組件將其值存儲在可訪問和可修改的Valuelist中。

    訪問系列值

        您可以訪問列表中的任何值:

    ShowMessage(FloatToStr(Series1.XValues[3]));
    //Displays value of 4th point (index starts at 0) in Series1

        以這種方式訪問的值可用于設(shè)置系列數(shù)據(jù)的陷阱條件:

     With Series1 do
     begin
       For t := 0 To Count - 1 do
       begin
         If YValues[t] > 9 Then
           ShowMessage('Value: ' + FloatToStr(XValues[t])
           + ', ' + FloatToStr(YValues[t]) + ' exceeds limit');
       end;
     end;

        可以通過一些Series方法和幾個Chart事件使用的PointIndex點獲得相同的值。

    procedure TForm1.Series1Click(Sender: TChartSeries; ValueIndex: Integer;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      Showmessage('ValueIndex is: ' + IntToStr(ValueIndex));
      Showmessage('Point''s Y value is: ' + FloatToStr(Sender.YValues.Value[ValueIndex]));
      Chart1.CancelMouse:=True;  //Use CancelMouse to prevent Zoom event activating
    end;

        單擊3D系列時,只有前平面上的單擊才會被識別為系列單擊。

    使用值的示例

        此代碼根據(jù)用戶的鼠標單擊修改BarSeries Bar的值。

    //Use the OnClickSeries or OnClickBackground event to determine where the user has clicked.procedure TForm1.Chart1ClickBackground(Sender: TCustomChart;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
    If (Int(Chart1.Axes.Bottom.CalcPosPoint(X)) > -1) Then
      Case Ord(Button) of
      0 : UpdatePoint(Chart1.Axes.Bottom.CalcPosPoint(X), Chart1.Axes.Left.CalcPosPoint(Y));
      end;
    end;
    
    procedure TForm1.Series1Click(Sender: TChartSeries; ValueIndex: Integer;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      UpdatePoint(ValueIndex, Chart1.Axes.Left.CalcPosPoint(Y));
      Chart1.CancelMouse:=True;  //Use CancelMouse to prevent Zoom event activatingend;

        在這兩種情況下,請調(diào)用UpdatePoint Sub例程來修改Bar的值:

    Procedure TForm1.UpdatePoint(Bar, Y : Double);
    begin
      If Round(Bar) < Series1.Count Then
      begin
        Series1.YValues[Round(Bar)] := Int(Y);
        Chart1.refresh;
      end;
    end;

    購買TeeChart Pro VCL/FMX正版授權(quán),請點擊“咨詢在線客服”喲!

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();