以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  求助版主:FrameToGrid的用法  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=2069)

--  作者:volersky
--  发布时间:2010/7/9 8:08:14
--  求助版主:FrameToGrid的用法

我查了下说明,Grid的FrameToGrid方法是这样说明的:

FrameToGird 方法

将“框架”坐标转换为窗格坐标。

FrameToGrid(x1, y1, x2, y2)

X1,Y1     输入参数,框架坐标位置

X2,Y2     输出参数,窗格坐标位置

 

我在框架内这样调用:

 

Sub kp_CursorMove(Grid, Index, x, y)

     Dim x1,y1

     Call Grid.FrameToGrid(x,y,x1,y1)

End Sub

但是通不过,请教版主,这个方法的等号左边应该是个什么类型,或者这个要怎么调用?谢谢


--  作者:admin
--  发布时间:2010/7/9 8:28:41
--  
这个函数在设计时存在缺陷,我们会在下个版本及时修正
--  作者:volersky
--  发布时间:2010/7/9 8:33:38
--  

谢谢,我搞了半天,原来是这个问题,还有一个问题:

 

Grid.ToPHeight在框架内重新设置后,Top位置是变化了,但K线图不会相应变化,只有在公式里调用了某个公式后,K线图才会相应上移或下移,是不是这个也存在bug?

[此贴子已经被作者于2010-7-9 8:36:50编辑过]

--  作者:admin
--  发布时间:2010/7/9 10:37:10
--  

这不是BUG,因为只有重新设置公式时整个系统才会重新刷新,你可是试试在改变TOPHEIGHT属性后,使用FrameReCalcAllGrid方法全部重新刷新

[此贴子已经被作者于2010-7-9 10:37:26编辑过]

--  作者:volersky
--  发布时间:2010/7/12 16:06:13
--  
我试分别在初始化,onmove,十字光标状态下调用,都没用,如果在onPaint内调用,一闪一闪亮晶晶
--  作者:admin
--  发布时间:2010/7/12 18:51:51
--  

onmove是不能每次都刷新的,会导致机器死掉,因为鼠标只要移动一个象素就会被执行一次

onPaint更不需要调用,因为本身就是在重绘时发生的事件

如果你不能自行解决问题,那么建议你贴出代码,我们帮你看看


--  作者:volersky
--  发布时间:2010/7/13 16:46:18
--  
谢谢版主!

我新建一个田字框架

加入代码如下:



Dim Grid Set Grid=Frame1.GetGridByIndex(0)
Grid.topHeight=200
Frame1.ReCalcAllGrid


Sub Frame1_Load()
Dim Grid
Set Grid=Frame1.GetGridByIndex(0)
Grid.topHeight=200
Frame1.ReCalcAllGrid
End Sub


Sub Frame1_Initialize()
Dim Grid
Set Grid=Frame1.GetGridByIndex(0)
Grid.topHeight=200
Frame1.ReCalcAllGrid
End Sub


都没用,我是在停盘时间搞的,请版主教教,应该在哪个位置或函数内调用才能实现?
--  作者:admin
--  发布时间:2010/7/13 17:34:46
--  
topHeight 属性会在每次重绘时重新计算高度,所以系统会覆盖掉你刚才设置的数值,这个属性一般是用来读取数值显示区高度的,用来设置高度目前是有些困难
--  作者:volersky
--  发布时间:2010/7/13 19:11:27
--  
谢谢
--  作者:xyhsoft
--  发布时间:2010/7/20 0:47:54
--  

 FrameToGrid(x, y, x2, y2)
 ValueByPoint(xx, y2, Date, ydata, false)

上面两个都通不过。