以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  我在做“模拟K线”的功能,有个问题呀:  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=1249)

--  作者:dzfp2010
--  发布时间:2010/3/28 12:38:23
--  [求助]金字塔怎样实现历史回忆

我在做“模拟K线”的功能,有个问题呀:

 

1,总是在属性窗口修改属性,很繁琐,可不可以像在Visual Stdio里面一样,直接在代码里修改窗体、控件的属性的啊?

 

 


图片点击可在新窗口打开查看此主题相关图片如下:模拟k线.jpg
图片点击可在新窗口打开查看

--  作者:admin
--  发布时间:2010/3/28 12:42:07
--  

也可以直接在VBS代码里改属性的吧


--  作者:dzfp2010
--  发布时间:2010/3/28 12:53:55
--  

\'窗体载入,设置窗体属性
Sub UserForm2_Initialize()
With UserForm2

.Width=282
.Height=162

End With
End Sub

 

我这样写,好象不行啊,是不是写错了呢?

 


此主题相关图片如下:未命名.jpg
按此在新窗口浏览图片
[此贴子已经被作者于2010-3-28 12:58:32编辑过]

--  作者:admin
--  发布时间:2010/3/28 13:09:04
--  

请看金字塔编程帮助中FROM对象的描述


--  作者:dzfp2010
--  发布时间:2010/3/28 15:54:36
--  

嗯,看过了,在“金字塔”中,这两个属性,是只读的,不能重新赋值。。。

 

现在已经做到这一步了,插入K线后,发现均线没有因为插入K线而发生变化呢?起不到模拟的效果,请版主,提示下一步该怎么做呢?

 

如图: 

 


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2010-3-28 15:55:12编辑过]

--  作者:dzfp2010
--  发布时间:2010/3/28 16:52:11
--  

代码如下,请版主帮忙完善,并对其中一些问题,进行一些优化和提示啊:

 

Sub UserForm2_Initialize()

\'能不能在初始化过程中直接写这部分代码,以后再用到这些代码的时候,可以省略呢?。。。
Set Grid=UserFrame6.GetGridByName("Main")
Set HistoryData=Grid.GetHistoryData()

End Sub

\'窗体载入,设置窗体属性
Sub UserForm2_Load()
With userForm2
\'.Caption="=模拟K线="
\'.Width=282
\'.Height=162
.Resizing=0
.MinButton=1
End With
\'指定一个自定义的图标
userForm2.SetTitileIcon("MyFile\\Icon\\yinwu.ICO")
userForm2.SetDefaultTabOrder()
End Sub

\'插入K线
Sub UserForm2_CommandButton2_Click()
\'验证TextBox中的数据
IF UserForm2_TextBox1.Text="" Or Not IsNumeric(UserForm2_TextBox1.Text) Then
MsgBox "请输入正确的 开盘价 数值。。。"
UserForm2_TextBox1.SetFocus
Exit Sub
End If

IF UserForm2_TextBox2.Text="" Or Not IsNumeric(UserForm2_TextBox2.Text) Then
MsgBox "请输入正确的 最高价 数值。。。"
UserForm2_TextBox2.SetFocus
Exit Sub
End If

IF UserForm2_TextBox3.Text="" Or Not IsNumeric(UserForm2_TextBox3.Text) Then
MsgBox "请输入正确的 最低价 数值。。。"
UserForm2_TextBox3.SetFocus
Exit Sub
End If
IF UserForm2_TextBox4.Text="" Or Not IsNumeric(UserForm2_TextBox4.Text) Then
MsgBox "请输入正确的 收盘价 数值。。。"
UserForm2_TextBox4.SetFocus
Exit Sub
End If

\'MsgBox "你点击了插入K线按钮"
Set Grid=UserFrame6.GetGridByName("Main")
Set HistoryData=Grid.GetHistoryData()
HistoryData.InsertAt(HistoryData.Count)
\'开盘价
HistoryData.Open(HistoryData.Count-1)=Cint(UserForm2_TextBox1.Text)
\'最高价
HistoryData.High(HistoryData.Count-1)=Cint(UserForm2_TextBox2.Text)
\'收盘价
HistoryData.Low(HistoryData.Count-1)=Cint(UserForm2_TextBox3.Text)
\'最低价
HistoryData.Close(HistoryData.Count-1)=Cint(UserForm2_TextBox4.Text)
\'重新计算框架内的所有公式数据、刷新框架
\'UserFrame6.ReCalcAllGrid()
\'UserFrame6.Refresh()
End Sub


\'删除K线
Sub UserForm2_CommandButton3_Click()
Set Grid=UserFrame6.GetGridByName("Main")
Set HistoryData=Grid.GetHistoryData()
HistoryData.RemoveAt(HistoryData.Count)
\'重新计算框架内的所有公式数据、刷新框架
\'UserFrame6.ReCalcAllGrid()
\'UserFrame6.Refresh()
End Sub


--  作者:admin
--  发布时间:2010/3/28 19:38:43
--  

插入之后需要调用 Grid.ReInitDataFormula 重新进行初始化刷新


--  作者:dzfp2010
--  发布时间:2010/3/28 20:54:06
--  
:-)问题是,在插入K线后,一刷新框架、或者公式,添加的K线自动就消失了呢。。。
--  作者:admin
--  发布时间:2010/3/28 21:16:30
--  
你吧你的所有代码都封装在窗体里面,然后将窗体导出来给我看看,发到 442902994@qq.com
--  作者:dzfp2010
--  发布时间:2010/3/28 22:33:44
--  

:-)

 

已经发送到邮箱啦,另外,发现设置控件的:TabIndex属性,没效果也。。。