• <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)惠!?。?/span>

    附加軸

    復(fù)制軸

        TeeChart提供5個(gè)軸與數(shù)據(jù)系列相關(guān)聯(lián):Left、Top、Bottom、Right和Depth。向圖表添加新系列時(shí),您可以定義系列應(yīng)與哪些軸相關(guān)(轉(zhuǎn)到“選項(xiàng)卡”“General”頁面)。您可以使用Axis Customdraw方法在圖表上的任何位置重復(fù)4個(gè)前軸中的任何一個(gè)(或全部)。請(qǐng)注意,此方法會(huì)復(fù)制Axis,但不會(huì)添加新的自定義軸。

        您將找到這個(gè)名為“CustAxisProject1”的示例,其中包含TeeChart示例代碼:

    //fill the Series for this example with random data
    procedure TForm1.BitBtn1Click(Sender: TObject);
    Var t:integer;
    begin
      For t := 0 To 20 do
        Series1.AddXY(t, Random(100) - Random(70), '', clRed);
    end;
    
    //Put this code in the OnBeforeDrawValues() event:
    procedure TForm1.Series1BeforeDrawValues(Sender: TObject);
    var posaxis :Integer;
    begin
      With Chart1 do
      begin
        If Axes.Left.Maximum > 0 Then
        begin
          
          //When scrolling or on zoom always keep the gridlines enclosed in the Chart rectangle
          Canvas.ClipRectangle(ChartRect);
    
          //Always draw the 2nd vertical Axis at the middle point of the Chart
          posaxis := (ChartRect.Left) + (ChartRect.Right - ChartRect.Left) div 2;
          Axes.Left.CustomDraw(posaxis - 10, posaxis - 20, posaxis, True);
    
          //Draw the 2nd Horizontal axis at the level of "10" on the vertical axis
          posaxis := (Axes.Left.CalcYPosValue(10));
          Axes.Bottom.CustomDraw(posaxis + 10, posaxis + 40, posaxis, True);
    
          Canvas.UnClipRectangle;
        end;
      end;
    end;

    Teechart

    自定義軸

        在此示例中,TeeChart將繪制新軸,一個(gè)水平,一個(gè)垂直位于圖表的中心。當(dāng)您滾動(dòng)圖表(用鼠標(biāo)右鍵拖動(dòng))時(shí),新的垂直軸將始終保持在圖表的中心,新的水平軸將垂直滾動(dòng)上下移動(dòng)。新軸是默認(rèn)軸的精確副本。

    多個(gè)自定義軸

        與PositionPercent和拉伸屬性一起,可以在圖表上的任何位置浮動(dòng)無限軸。滾動(dòng),縮放和軸命中檢測(cè)也適用于自定義創(chuàng)建的軸?,F(xiàn)在可以通過圖表編輯器在設(shè)計(jì)時(shí)創(chuàng)建額外的軸,也可以在運(yùn)行時(shí)通過幾行代碼創(chuàng)建附加軸:

    通過圖表編輯器

        TeeChart為您提供在設(shè)計(jì)時(shí)創(chuàng)建自定義軸的功能,使其能夠以TeeChart的Teechart格式保存。要實(shí)現(xiàn)此目的,請(qǐng)打開圖表編輯器并單擊“Axis”選項(xiàng)卡,然后選擇“+”按鈕以添加自定義軸。然后選擇位置選項(xiàng)卡確保您突出顯示新的自定義軸。此頁面上的&ldquo;Horizontal&rdquo;復(fù)選框允許您將新的自定義軸定義為水平軸或?qū)⑵浔A魹槟J(rèn)垂直軸。如上所述,此頁面的其余部分和Axis頁面中的其他選項(xiàng)卡可用于更改自定義軸的比例,增量,標(biāo)題,標(biāo)簽,刻度,次刻度和位置。要將此新的自定義軸與所需的數(shù)據(jù)系列相關(guān)聯(lián),請(qǐng)選擇“Series”選項(xiàng)卡,然后轉(zhuǎn)到“General”頁面,其中下拉組合框“Horizontal Axis”和“Vertical Axis”將允許您根據(jù)先前是否定義選擇新的自定義軸它是垂直的或水平的。

    通過代碼
    procedure TForm1.BitBtn2Click(Sender: TObject);
    Var MyAxis : TChartAxis ;
    begin
      MyAxis := TChartAxis.Create(  Chart1 );
      Series2.CustomVertAxis := MyAxis;
    
      //You can modify any property of the new created axes, such as the axis color or axis title
      With MyAxis do
      begin
        Axis.Color:=clGreen ;
        Title.Caption := 'Extra axis' ;
        Title.Font.Style:=[fsBold];
        Title.Angle := 90;
        PositionPercent := 20; //percentage of Chart rectangle
      end;
    end;

        然后,您可以使用StartPosition和EndPosition屬性將新軸與圖表的整體關(guān)系定位。

    StartPosition:=50;
    EndPosition:=100;

        這些數(shù)字表示為圖表矩形的百分比,其中0(零)(在垂直軸的情況下)為Top。這些屬性可以應(yīng)用于標(biāo)準(zhǔn)軸,以在圖表中創(chuàng)建完全分區(qū)的“SubCharts”;。

     With Chart1.Axes.Left do
      begin
        StartPosition:=0;
        EndPosition:=50;
        Title.Caption:='1st Left Axis';
        Title.Font.Style:=[fsBold];
      end;

        以上2個(gè)編碼示例與以下數(shù)據(jù)結(jié)合使用:

    var t: integer;
    begin
      for t := 0 to 10 do
      begin
        Series1.AddXY(t,10+t,'',clTeeColor);
        if t > 1 then
          Series2.AddXY(t,t/2,'',clTeeColor);
      end;

        將顯示以下圖表:

    Teechart

    多軸

        另一種添加自定義軸的技術(shù)如下,使用“Axis List”作為焦點(diǎn),使用“List Add”,然后通過“Axis by Index”訪問:

    //Add data to Series:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Series1.FillSampleValues(10);
      Series2.FillSampleValues(10);
    end;
    
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
     tmpVertAxis: TChartAxis;
     tmpHorizAxis: TChartAxis;
    begin
      {Add vertical Axis}
      Chart1.CustomAxes.Add;
      tmpVertAxis:=Chart1.CustomAxes[0];
      tmpVertAxis.PositionPercent:=50;
      Series1.CustomVertAxis:=tmpVertAxis;
    
      {Add horizontal Axis}
      Chart1.CustomAxes.Add;
      tmpHorizAxis:=Chart1.CustomAxes[1];
    
      tmpHorizAxis.Horizontal:=True;
      tmpHorizAxis.Axis.Color:=clGreen;
      tmpHorizAxis.PositionPercent:=50;
      Series1.CustomHorizAxis:=tmpHorizAxis;
    end;

        建議在使用自定義軸時(shí)要小心,因?yàn)楹苋菀组_始用新軸填充屏幕并且無法跟蹤您想要管理的軸!


    軸事件

        Axis事件提供運(yùn)行時(shí)靈活性,可以修改Axis標(biāo)簽并在Axis Clicks上為用戶提供交互性。

    OnClickAxis

    procedure TForm1.Chart1ClickAxis(Sender: TCustomChart; Axis: TChartAxis;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      //Shows Axis point clicked when click on Bottom Axis.
    
      if Axis = Chart1.Axes.Bottom Then
         ShowMessage('Clicked Bottom Axis at '  + FloatToStr(Chart1.Axes.Bottom.CalcPosPoint(X)));
    end;

    OnGetAxisLabel

    procedure TForm1.Chart1GetAxisLabel(Sender: TChartAxis;
      Series: TChartSeries; ValueIndex: Integer; var LabelText: String);
    begin
      if Sender = Chart1.Axes.Bottom Then
         Case StrToInt(FormatDateTime('mm', StrToDate(LabelText))) of
           1,2,3 : LabelText := '1st Qtr';
           4,5,6 : LabelText := '2nd Qtr';
         end;
    end;

    OnGetNextAxisLabel

    procedure TForm1.Chart1GetNextAxisLabel(Sender: TChartAxis;
      LabelIndex: Integer; var LabelValue: Double; var Stop: Boolean);
    begin
      Stop:=False;
    
      if Sender = Chart1.Axes.Bottom Then
      begin
        if LabelValue>=5 then LabelValue:=LabelValue+5
                         else LabelValue:=5;
      end
      else
        Stop:=True;
    
    end;

        以上示例將開始在每5個(gè)點(diǎn)的底軸標(biāo)記處標(biāo)記為'5'。其他軸標(biāo)簽不受影響。

    查看Teechart.Net系列教程>>

    購買TeeChart Pro VCL/FMX正版授權(quán),請(qǐng)點(diǎn)擊“咨詢?cè)诰€客服”喲!

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    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); })();