以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  高级功能研发区  (http://www.weistock.com/bbs/list.asp?boardid=5)
----  k线图的平移操作问题  (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=4432)

--  作者:admin
--  发布时间:2010/12/14 15:35:56
--  k线图的平移操作问题
Grid对象的属性showlastcyc规定是只读的,请问,k线图的平移操作(增加X轴空白周期,Y轴一段空白),既然能够手工操作,那么如何用代码实现?
--  作者:一亩三分地
--  发布时间:2010/12/14 17:51:22
--  
左右的找到了,上下的还没找到

sub shiftleft()
Set Grid = Technic.GetGridByName("Main")
Grid.StartShowIndex=Grid.ShowStartIndex+1          
call Technic.Refresh() 
end sub

sub shiftright()
Set Grid = Technic.GetGridByName("Main")
Grid.StartShowIndex=Grid.ShowStartIndex-1          
call Technic.Refresh() 
end sub



--  作者:admin
--  发布时间:2010/12/14 21:40:38
--  

参考CalcGridMaxMin事件的部分代码,CalcGridMaxMin事件在窗格计算最大最小值发生,可以通过修改这个最大最小值来达到上下平移的目的。

 

Sub Technic_CalcGridMaxMin(Grid, MaxVal, MinVal, Result)
 If Grid.Name <> "Main" Then
   exit Sub
 End if
 
 if GraphSetup_CheckBox2.Value = true Then
  Set Report1 = Grid.GetReportData
  if Report1 is NoThing Then
    Exit Sub
  End if
 
  if  GraphSetup_OptionButton1.Value = true Then
   AvgPrice = Report1.AveragePrice
   if AvgPrice = 0 then
    AvgPrice = Report1.LastClose
   end if
   if AvgPrice = 0 then
    Exit Sub
   End if
   
   MaxVal = AvgPrice +  GraphSetup_TextBox1.Text
   MinVal = AvgPrice -  GraphSetup_TextBox1.Text
  End if
  
  if  GraphSetup_OptionButton2.Value = true Then
   MaxVal = (Report1.High+Report1.Low)/2 +  GraphSetup_TextBox1.Text
   MinVal = (Report1.High+Report1.Low)/2 -  GraphSetup_TextBox1.Text
  End if
  
  Result = 1
 End if
End Sub