我想自己写一个图表控件 因为Delphi自带的那个TChart我找不到多个Y轴的方法,所以现在想自己写一个图表(曲线就可以了),请求思路或者源码!谢谢大家了!很急啊!谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在image上画线,自己控制步长和坐标,我们的一个程序就是自己画的曲线。效果不错 刚好前些日子有写一个趋势图,主要就是moveto,linetotype TTinData=record dotTime: TDateTime; liquip : double; volume : double; weight : double; end; TTinDatas=record nDot : integer; tinNo : string; fromTime : TDateTime; endTime : TDateTime; maxPlace : double; maxVolume: double; maxWeight: double; datas : array of TTinData; end;var m_TinDatas: TTinDatas;....procedure TFmTrendLine.GetTrendLineXY(value: double; dotTime: TDateTime; var x,y: integer; scale: integer=1);begin x := TREND_SRCX+Round(MinutesBetween(dotTime,FmTinHistory.TinDatas.fromTime)*TREND_WIDTH/m_Minutes); y := TREND_SRCY-Round(value*TREND_HEIGHT*scale/m_MaxY);end;procedure TFmTrendLine.DrawWeightTrendLine();var i,x,y: integer;begin GetTrendLineXY(m_TinDatas.datas[0].weight,m_TinDatas.datas[0].dotTime,x,y); //以下是绘图 imgTrendLine.Canvas.MoveTo(x,y); imgTrendLine.Canvas.Pen.Color := clBlue; imgTrendLine.Canvas.Pen.Width := 2; for i:=1 to m_TinDatas.nDot-1 do begin //根据重量和时间点,计算x,y坐标 GetTrendLineXY(m_TinDatas.datas[i].weight,m_TinDatas.datas[i].dotTime,x,y); imgTrendLine.Canvas.LineTo(x,y); end;end; 远程主机强迫关掉一个连接 急!!!下面dephi中錯誤提示是哪裡有問題, actionlist问题:) 请大家用简短的语言说一下自己对COM/COM+的认识与看法~~~ 求教!!怎么求枚举类型中的第n个枚举值的名称?? 关于string的问题 有关select in 语句的问题简单问题 请推荐一些好书或者网站用Delphi编写Com的。 如何获得IE的浏览记录 高手请进 如何制作函数库,不要dll 请辞Delphi非技术版的版主
TTinData=record
dotTime: TDateTime;
liquip : double;
volume : double;
weight : double;
end;
TTinDatas=record
nDot : integer;
tinNo : string;
fromTime : TDateTime;
endTime : TDateTime;
maxPlace : double;
maxVolume: double;
maxWeight: double;
datas : array of TTinData;
end;var
m_TinDatas: TTinDatas;....
procedure TFmTrendLine.GetTrendLineXY(value: double; dotTime: TDateTime; var x,y: integer; scale: integer=1);
begin
x := TREND_SRCX+Round(MinutesBetween(dotTime,FmTinHistory.TinDatas.fromTime)*TREND_WIDTH/m_Minutes);
y := TREND_SRCY-Round(value*TREND_HEIGHT*scale/m_MaxY);
end;procedure TFmTrendLine.DrawWeightTrendLine();
var
i,x,y: integer;
begin
GetTrendLineXY(m_TinDatas.datas[0].weight,m_TinDatas.datas[0].dotTime,x,y);
//以下是绘图
imgTrendLine.Canvas.MoveTo(x,y);
imgTrendLine.Canvas.Pen.Color := clBlue;
imgTrendLine.Canvas.Pen.Width := 2;
for i:=1 to m_TinDatas.nDot-1 do
begin
//根据重量和时间点,计算x,y坐标
GetTrendLineXY(m_TinDatas.datas[i].weight,m_TinDatas.datas[i].dotTime,x,y);
imgTrendLine.Canvas.LineTo(x,y);
end;
end;