彩票走势图

TeeChart VCL实时数据图技巧(二)禁用某些元素

原创|使用教程|编辑:郝浩|2013-04-25 11:32:59.000|阅读 558 次

概述:本教程就为大家提供几种,老牌图表控件TeeChart Pro VCL可以确保数据绘制速度的方法。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

  所谓实时数据图,就是图表中的数据与图表的生成为同一瞬间。当然这是非常理想化的,在现实中,只有提高绘图速度,尽可能减少测量和绘制数据之间的延迟,本教程就为大家提供几种,老牌图表控件TeeChart Pro VCL可以确保数据绘制速度的方法。

  以下方法都可以加快绘制实时数据图的时间:

  • 选择合适的系列类型
  • 禁用所有实时数据图不需要的花哨功能
  • 预处理数据
  • 选择合适的方法来填充数据系列

  图表中的每个元素的绘制都会增加绘制图表的时间,所以隐藏所有不必要的图表元素对TeeChart Pro VCL绘制实时数据图是意义重大的。

  可以禁用的不必要元素包括图表图例,图表标题,图表框架等。

  还可以手动定义图表轴的递增单位和轴范围,这样可以避免被执行的内部calculatation算法过于频繁。

  此外,还可以使用一个从TeeChart V6版本后开始引入的新属性——TChartAxes.FastCal。把这个属性设置为True后,他额外的减少图表的绘制时间。

  下面这个代码示例中就包括上述所提到的所有属性和方法设置。

  // Prepare chart for maximum speed:
  with Chart1 do
  begin
    ClipPoints := False;
    Title.Visible := False;
    Legend.Visible := False;
    LeftAxis.Axis.Width:=1;
    BottomAxis.Axis.Width:=1;
    BottomAxis.RoundFirstLabel := False;
    View3D := False;
  end;

  // Number of points we'll be displaying
  MaxPoints:=10000;
  // Number of points deleted when scrolling chart
  ScrollPoints := 5000;

  // Prepare series.
  // Disable AutoRepaint and X Order

  // AutoRepaint=False means "real-time" drawing mode.
  // Points are displayed just after adding them,
  // without redrawing the whole chart.
  Series1.AutoRepaint := False;

  // Set Ordering to none, to increment speed when adding points
  Series1.XValues.Order := loNone;

  // Initialize axis scales
  // we're assuming left axis values are within [0,1000]
  Chart1.LeftAxis.SetMinMax(0,10000); 
  Chart1.BottomAxis.SetMinMax(1,MaxPoints);

  // Speed tips:

  // When using only a single thread, disable locking:
  Chart1.Canvas.ReferenceCanvas.Pen.OwnerCriticalSection := nil;
  Series1.LinePen.OwnerCriticalSection := nil;

  // For Windows NT, 2000 and XP only:
  // Speed realtime painting with solid pens of width 1.
  Series1.FastPen := True;

  // Set axis calculations in "fast mode".
  // Note: For Windows Me and 98 might produce bad drawings when
  //       chart zoom is very big.
  Chart1.Axes.FastCalc := True;

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP