程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Tchart分析報告

Tchart分析報告

編輯:Delphi

1          Tchart分析報告

1.1      [概述]

   TChart是delphi裡面一個標准的圖形顯示控件。它可以靜態設計(at design time)也可以動態生成。

1.2      [繼承關系]

      TObject TPersistent TComponent TControl TCustomControl TWedgetControl TChart TCustomPanel

1.3      [tips]

1.3.1            Pro Version支持Bezier , Contour , Radar 和  point3D 曲線

1.3.2            支持jpeg文件的導出

1.3.3            Chart中的Series 可以連接到Table , Query , RemoteDataset(其他數據集)

1.3.4            TChart裡的series的active屬性可以實現對已繪制圖形的顯示或者隱藏

1.3.5            在TChart中, tchartSeries是所有具體series的父類,沒有畫出什麼來的,用一個具體的series類來創建就可以了,比如用TLineSeries、TPieSeries、 TPointSeries、 TPointSeries等等都行

1.3.6            TTeeFunction Component可以實現在同一個TChart裡面,一個Serries對另一個Serries的統計

 

1.4      [問題極其使用技巧]

1.4.1            TChart中如何實現只有Y軸的放大與縮小功能?

設置BottomAxis或者LeftAxis的Automatic:=false並同時設置Minimum,Maximum屬性

1.4.2            如何固定TChart中的坐標,不使TChart中的坐標跟隨Series的變化而變化?

//設置底座標   with myChart.BottomAxis do   begin     Automatic:=false;     Minimum:=0;     LabelStyle := talText;   end;   //設置左坐標   with myChart.LeftAxis do   begin     Automatic:=false;     Minimum:=0;     Title.Angle:=270;     Title.Font:=Self.Font;     Title.Font.Charset:=ANSI_CHARSET;     Title.Font.Name:='@宋體';     Grid.Visible := False;   end;   //設置右坐標   with myChart.RightAxis do   begin     Automatic:=false;     Title.Font:=Self.Font;     Title.Font.Charset:=ANSI_CHARSET;     Title.Font.Name:='@宋體';     Title.Caption:='累計百分比(%)';     Maximum:=100;     Minimum:=0;   end;

1.4.3            如何刪除一個圖形中的一個點?

使用Series的delete 方法

1.4.4            如何修改一個點的X或者Y 值?

LineSeries1.YValue[3] := 27.1 ; {In Bubble Series} BubbleSeries1.RadiusValues.Value[ 8 ] := 8.1 ; {In Pie Series} PieSeries1.PieValues.Value[ 3 ] := 111 ;

1.4.5            如果橫坐標是時間(日期),如何進行設置?

{First, you need to set the DateTime property to True in the desired X and/or Y values list.} LineSeries1.XValues.DateTime := True ; {Second, use the same above described methods, but give the values as Date, Time or DateTime values} LineSeries1.AddXY( EncodeDate( 1996 , 1 , 23 ) , 25.4 , 'Barcelona' , clGreen );

1.4.6            如何在chart中畫出的曲線某個點上標記出該點的值?

Series.Marks.Visible:=true; Series.Marks.Style:=smsValue;

1.4.7            如何設置橫軸或者縱軸的增長率?

Chart.BottomAxis.Increment := DataTimeStep[ dtOneHour ] ; Chart.RightAxis.Increment := 1000;

1.4.8            如何對圖象進行縮放?

TChart的ZoomRect或者ZoomPercent方法 (Pie圖可能不支持縮放)    

1.5      [TChart可以繪制的圖形]

1.5.1            Line ( TLineSeries)

1.5.2            FastLine (TFastLineSeries) 相對Line來說,它損耗了某些屬性從而來實現快速繪制

1.5.3            Bar (TBarSeries)

1.5.4            Horizontal bar (THorizBarSeries)

1.5.5            Area (TAreaSeries)

1.5.6            Point (TPointSeries)

1.5.7            Pie (TPieSeries)

1.5.8            Arrow (TArrowSeries)

1.5.9            Bubble (TBubbleSeries)

1.5.10         Gantt (TGanttSeries)

1.5.11         Sharp (TChartShape)

1.6      [TChart的實時繪制]

  實時繪制對機器性能要求比較高,因此我們在編程的時候要注意下面幾個方面: ü         使用2D圖形 ü         是Chart盡可能包含少的點 ü         如果需要,可以移除(remove)chart的legend(?????)和Title ü         使用默認的字體和字體大小 ü         使用FastLineSeries ü         使用實體(solid)畫筆和畫刷格式 ü         盡量避免使用圓形和環行bar樣式 ü         不要使用背景圖片和漸變效果樣式 ü         把Chart的BevelInner和BevelOUter屬性設置為bcNone ü         如果需要,把TChart的AxisVisible屬性設置為False ü         把BufferedDisplay設置為false可以加速chart的重繪  

1.7      [Scrolling]

   TChart有4中scroll選擇(AllowPanning屬性),分別是 不允許Scroll ( pmNone) ; 水平Scroll (pmHorizontal) ; 垂直Scroll (pmVertical)  ;  水平和垂直Scroll (pmBoth) Procedure Scroll(Const Offset:Double; CheckLimits:Boolean); 例子如下:  Chart1.BottomAxis.Scroll(  1000, True );這段代碼也等同於 With Chart1.BottomAxis do Begin  Automatic:=false;  SetMinMax( Minimum+1000, Maximum+1000 );     End;    

1.8      [TChart中的全局變量]

ü         TeeScrollMouseButton := mbRight;設置鼠標右鍵為TChart滾動鍵(默認) ü         TeeScrollKeyShift    := [ ssCtrl ]; 要按住Control鍵才可以使Scroll滾動  

1.9      [TChartSerries使用技巧]

1.9.1            運行時候創建一個Serries, 三種方法:

1.Var MySeries : TBarSeries ; MySeries := TBarSeries.Create( Self ); MySeries.ParentChart := Chart1 ;             2.Chart1.AddSeries( TBarSeries.Create( Self ) );                 3.Var MyClass : TChartSeriesClass; MyClass := TBarSeries ; Chart1.AddSeries( MyClass.Create( Self ) );

1.9.2            獲得TChart中的Serries數組,也有三種方法

1.MySeries := Chart1.SeriesList [ 0 ] 2.MySeries := Chart1.Series [ 0 ] 3.MySeries := Chart1 [ 0 ]

1.9.3            SerriesCount屬性獲得SeriesList中Series的個數

1.9.4            隱藏TChart中的Series有三種方法,但是效果不等價

1.  Series1.Active:=False; 僅僅隱藏,當設置為true的時候還可以顯示出來 2.  Series1.ParentChart:=nil ; 隱藏,重新設置ParentChart為TChart時候可以顯示 3.  Series1.Free; 刪除了Series. 不可以恢復

1.9.5            TChart中的數據排序

    With Series1 do begin     YValues.Order:=loAscending;     YValues.Sort;     Repaint; end; Ø         定位一個點(Loacate a point) Series1.XValues.Locate(123); Ø         XValue和YValue都擁有的屬性Total , TotalABS , MaxValue , MinValue
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved