delphi中关于TChart控件使用的问题

时间:2022-04-09 17:34:07
      数据库有两列数据,一列日期,一列是数值,我想用TChart做一个曲线图,横坐标显示日期,纵坐标显示数值,试了很久没有成功!那位有TChart的使用说明或者TChart的小例子给我发一份,或者给我写的操作步骤。谢谢.

10 个解决方案

#1


我的邮箱:wangdong_423@126.com

#2


1、设置线条LineSeries的横坐标为时间格式,双击Chart控件在Series页面下General页面设置;
2、按时间升序排列查询数据库中需要的数据;
3、记录集中做一个循环,从第一条到最后一条,使用AddXY添加曲线点;
  First;
  While not AdoQuery.Eof do
  begin
    LineSeries.AddXY(AdoQuery.FieldValues[日期], AdoQuery.FieldValues[数值]);
    Next;
  end;
4、LineSeries.Active := True; 完成!
5、动态创建线条曲线时:
  var LS: TLineSeries;
  begin
    //删除已有Series
    Chart1.FreeAllSeries(nil);
    LS := TLineSeries.Create(Chart1);
    LS.Active := False;
    LS.Title  := '测试';
    LS.LinePen.Width    := 1;
    LS.XValues.DateTime := True;
    //循环添加
    ......
    //添加并显示
    LS.Active := True;
    Chart1.AddSeries(LS);
  end;

#3


该回复于2010-02-23 16:37:01被版主删除

#4


tass0115回复很有用,再问下如何在两个横坐标点间加入虚线,比如1999-01-01 00:00和1999-01-02 00:00中间别的时间点显示出虚线。

#5


网上有TChart的使用小例子。

#6


看来,我非常了解你的痛苦.我来超度你吧.大致思路是:循环你数据表的记录来为TCHART新增数据序列. 伪代码如下 

如:
  i := 0;
  游标置为最开始
  while 游标未到末尾 do
  begin
    Chart1.SeriesList[0].AddXY(x值, y值);
    chart1.SeriesList[0].XLabel[i] := 根据x值转换来的你想要的字符串值;

    移动游标
    inc(i)
  end

相信你会发现这么做的好处在哪里的.
记得给分给我.

#7


sakaibam99:曲线显示现在已经没问题了,我的问题是
再问下如何在两个横坐标点间加入虚线,比如1999-01-01 00:00和1999-01-02 00:00中间别的时间点显示出虚线。

#8


曲线不会动,能动就好了。

#9


假如你tchart里有个属性auto设置为true,那你添加点时 他会自动添加虚线,只在加那个点的地方自动添加,如果不是,则 它会按你的tchart设置需要几个虚线,而显示对应虚线个数,delphi的demo里有例子,我用的是tchart7

#10


图形的问题还没用过,路过学习

#1


我的邮箱:wangdong_423@126.com

#2


1、设置线条LineSeries的横坐标为时间格式,双击Chart控件在Series页面下General页面设置;
2、按时间升序排列查询数据库中需要的数据;
3、记录集中做一个循环,从第一条到最后一条,使用AddXY添加曲线点;
  First;
  While not AdoQuery.Eof do
  begin
    LineSeries.AddXY(AdoQuery.FieldValues[日期], AdoQuery.FieldValues[数值]);
    Next;
  end;
4、LineSeries.Active := True; 完成!
5、动态创建线条曲线时:
  var LS: TLineSeries;
  begin
    //删除已有Series
    Chart1.FreeAllSeries(nil);
    LS := TLineSeries.Create(Chart1);
    LS.Active := False;
    LS.Title  := '测试';
    LS.LinePen.Width    := 1;
    LS.XValues.DateTime := True;
    //循环添加
    ......
    //添加并显示
    LS.Active := True;
    Chart1.AddSeries(LS);
  end;

#3


该回复于2010-02-23 16:37:01被版主删除

#4


tass0115回复很有用,再问下如何在两个横坐标点间加入虚线,比如1999-01-01 00:00和1999-01-02 00:00中间别的时间点显示出虚线。

#5


网上有TChart的使用小例子。

#6


看来,我非常了解你的痛苦.我来超度你吧.大致思路是:循环你数据表的记录来为TCHART新增数据序列. 伪代码如下 

如:
  i := 0;
  游标置为最开始
  while 游标未到末尾 do
  begin
    Chart1.SeriesList[0].AddXY(x值, y值);
    chart1.SeriesList[0].XLabel[i] := 根据x值转换来的你想要的字符串值;

    移动游标
    inc(i)
  end

相信你会发现这么做的好处在哪里的.
记得给分给我.

#7


sakaibam99:曲线显示现在已经没问题了,我的问题是
再问下如何在两个横坐标点间加入虚线,比如1999-01-01 00:00和1999-01-02 00:00中间别的时间点显示出虚线。

#8


曲线不会动,能动就好了。

#9


假如你tchart里有个属性auto设置为true,那你添加点时 他会自动添加虚线,只在加那个点的地方自动添加,如果不是,则 它会按你的tchart设置需要几个虚线,而显示对应虚线个数,delphi的demo里有例子,我用的是tchart7

#10


图形的问题还没用过,路过学习