怎么在TChart中画一条平行于X轴的直线
如何在TChart中画一条平行于X轴的直线
看到网上说可以通过函数function来画直线/各种自定义曲线;series|dataSource|function. 在object treeView对象观察器中 series1|TeeFunction1 的OnCalculate事件中添加公式,但是找不到添加OnCalculate事件的地方
------解决方案--------------------
查看program files下Delphi目录下的Teechart举例,里面有现成的。
------解决方案--------------------
但是找不到添加OnCalculate事件的地方
----------------------
需要手动添加代码
见下例
窗体中一个Tchart(name=cht1)
看到网上说可以通过函数function来画直线/各种自定义曲线;series|dataSource|function. 在object treeView对象观察器中 series1|TeeFunction1 的OnCalculate事件中添加公式,但是找不到添加OnCalculate事件的地方
------解决方案--------------------
查看program files下Delphi目录下的Teechart举例,里面有现成的。
------解决方案--------------------
但是找不到添加OnCalculate事件的地方
----------------------
需要手动添加代码
见下例
窗体中一个Tchart(name=cht1)
unit Unit9;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, ExtCtrls, TeeProcs, Chart, Series, TeeFunci;
type
TForm9 = class(TForm)
cht1: TChart;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
Series: TLineSeries; //什么一个Series
cstmtfnctnTeeFunction1: TCustomTeeFunction; //声明一个function
//function的onCalculate方法声明
procedure TeeFunction1Calculate(Sender: TCustomTeeFunction; const x: Double;
var y: Double);
public
{ Public declarations }
end;
var
Form9: TForm9;
implementation
{$R *.dfm}
//function的onCalculate方法实现
procedure TForm9.TeeFunction1Calculate(Sender: TCustomTeeFunction;
const x: Double; var y: Double);
begin
//y:=50; //直线
y:=Sin(x/10); //sin
end;
procedure TForm9.FormCreate(Sender: TObject);
begin
Series := TLineSeries.Create(cht1); //创建series
cstmtfnctnTeeFunction1 := TCustomTeeFunction.Create(Series);//创建function
cstmtfnctnTeeFunction1.ParentSeries := Series;//关联到Series
cstmtfnctnTeeFunction1.OnCalculate := TeeFunction1Calculate;//OnCalculate 事件关联
cht1.AddSeries(Series);//Series加入到cht1中
end;
end.