问题已解决,发分庆祝!17:30分结贴 (300分)

  • 主题发起人 主题发起人 desertsmoke
  • 开始时间 开始时间
D

desertsmoke

Unregistered / Unconfirmed
GUEST, unregistred user!
有两个问题:
关于TChart——这个问题以前提过(依然没解决)
一个问题是:用TFastLineSeries来绘曲线图,当数据点的值变化很小,并一直增加时当达到
一定的值,例如(665.608-665.654),再往后的值就到画布外面了,用鼠标右键拖动才可以
看到,而Tchart中我设置的是自动调整,哪位知道TChart对这个数据点值的范围有什么要求?
另一个问题我上回提过不过没有答案,不过分已经发下去了,大伙还是再来讨论一下
就是程序中通过AddXY(pValue,Now)来绘图时碰到一个怪问题,pValue的值必须缩小一定的倍数
(倍数不确定如6559525,必须缩小1000倍以上,而65595257585缩小1000倍也可以加进来
——岂不怪哉!!!),这个点才能成功的添加进来!不能添加时错误提示如下:
---------------------------
Debugger Exception Notification
---------------------------
Project Chart.exe raised exception class EInvalidPointer with message
'Invalid pointer operation'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
各位帮帮忙,看看可能是什么原因?!先谢了
-------------------------------------------------------------------------------
补充:pValue变量类型为Real.
-------------------------------------------------------------------------------
 
MessageDlg('ddd', mtError, [mbyes], 0)
我这样试了,没问题.
 
我新开一个工程也没问题,可我的这个现在有问题了!
 
把原话写出来.
你是不是自己定义了mtError.
 
开始我也以为是这个原因,可是没有!
 
猜测:是不是引用的单元中有重复的定义,你调整一下引用单元的顺序看看:)
 
关于mtError的问题,百分之九十九点九九是你引用的某个单元中重定义了mtError,
而且是定义成一个类。
把你的语句中mtError前面加上Dialogs.就行了,如下
MessageDlg('错误信息', Dialogs.mtError, [mbOK], 0);
 
to:chinahawk
真的是因为这个原因,我把接口部分引用的单元Dialogs放到最后,问题就解决了!但究竟
是怎么引起的还不是很清楚!分先给你存着!谢谢!
******************************************************************************
第一个问题已解决,请继续讨论其他问题!
 
谢谢NoSound, 分给你存着
 
第二个问题是这样的:
*******************************************************************************
2、关于TChart——这个问题以前提过(依然没解决)
一个问题是:用TFastLineSeries来绘曲线图,当数据点的值变化很小,并一直增加时当达到
一定的值,例如(665.608-665.654),再往后的值就到画布外面了,用鼠标右键拖动才可以
看到,而Tchart中我设置的是自动调整,哪位知道TChart对这个数据点值的范围有什么要求?
另一个问题我上回提过不过没有答案,不过分已经发下去了,大伙还是再来讨论一下
就是程序中通过AddXY(pValue,Now)来绘图时碰到一个怪问题,pValue的值必须缩小一定的倍数
(倍数不确定如6559525,必须缩小1000倍以上,而65595257585缩小1000倍也可以加进来
——岂不怪哉!!!),这个点才能成功的添加进来!不能添加时错误提示如下:
---------------------------
Debugger Exception Notification
---------------------------
Project Chart.exe raised exception class EInvalidPointer with message
'Invalid pointer operation'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
各位帮帮忙,看看可能是什么原因?!先谢了
-------------------------------------------------------------------------------
补充:pValue变量类型为Real.
-------------------------------------------------------------------------------
 
原因是名字冲突呗,如果两个单元中都定义了mtError就会搞不清楚。这种时候要写上单元
名,tbitmap也有这种情况。
--------
后两个没做过,不会。:)
 
对于第一个问题,real_clq说得对,原因是名字冲突,你把你的单元引用顺序改一改,或者按下CTRL再
点MTERROR看它把你带到哪个单无就明白了,在DELPHI中这样的事很常见
对于2,我没试过,对不起
 
因为我很少用TChart,所以我也不知道为什么会这样,但第一个问题其实要找到原因很简单,
你在没有加Dialogs.之前可以把鼠标移到mtError上按下Ctrl键再单击,然后你就可以看到
这个mtError在哪里定义的了,当然必要条件是你正在有相关的源码.
 
要不如此写
XXX.XXXXX
 
to:Nizvoo
试过了
 
Nizvoo@etang.com
弄个小例看看行吗?
也许能有法子
众人拾材火焰高
 
这是计算后得到的数据
------------------------------------------------
2002-07-21 10:59:30 379686
2002-07-22 11:36:43 24999353832
2002-07-22 11:38:47 24999353832
2002-07-22 12:02:17 24999353832
2002-07-22 13:19:58 24999353832
------------------------------------------------
用series1.AddXY(now,pValues);将该点添加到Series,就出现问题了!
但我测试了可以想到的大多数情况都是正常的!
如下:
var
pValue:real;
begin
pValue:=random(10000000000000000);
series1.AddXY(now,pValues);
end;
 
开始有点眉目了——跟LeftAxis的最大最小值有关系,不过问题还没有解决,
LeftAxis的Maximum最大可设为——2147483647(一次一次试验出来的),超过这个值的
数据点将在显示区之外(不可见,可通过鼠标右键拖动来查看——而这是不合要求的),
而我这里有很多数据都比它大多了,这可咋整?!
 
最小的话应该是-2147483648!
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部