以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  高级功能研发区  (http://www.weistock.com/bbs/list.asp?boardid=5)
----  无法保存修改参数  (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=64206)

--  作者:youop
--  发布时间:2014/4/21 22:49:59
--  无法保存修改参数

我用了下面的代码修改窗口参数,可是关掉金字塔以后参数又变回原来的参数了,是怎么回事,需要加一句什么语句可以保存参数

 

Sub OutPyramid(TeName,TeObj,StNum)


   Dim i
   Application.ActivateFrame(TeName)
   Set TSheet=ExcelApp.Application.Sheets("差值")
   iRowNo=Int(TSheet.Range("W1"))
   
    For i=StNum-1 to StNum+6
         Set TGrid=Teobj.GetGridByIndex(i)
         Set TFor=TGrid.GetFormulaByIndex(1)
         Set TVal=TSheet.Cells(iRowNo,i+2)
         TFor.SetParameter(Cstr(Tval))
    Next

 

End Sub


--  作者:王锋
--  发布时间:2014/4/22 23:42:54
--  

公式参数是保存在INI文件中的,路径是Setting\\FormulaSettings.ini

其中格式为:

[公式名]

框架名+窗格名+线名+周期=参数值

其中周期数字,请参考 Grid 对象的CycType属性。

 

建议你图形搞个公式修改参数然后保存试试,然后再打开这个INI文件看看,你应该能明白。

 


--  作者:youop
--  发布时间:2014/4/23 22:39:56
--  

我运行了程序以后,检查了参数,已经修改好了,版本是最新的3.12稳定版。然后去查看老大你给的文件夹,里面的数值没有变化,然后关掉程序再打开,又变回原来的数值了,这是怎么回事?怎么让他保存呢?我还是不懂;

 


--  作者:youop
--  发布时间:2014/4/23 22:41:11
--  
也就是说,从头到尾,我运行了程序,参数修改只是我看到了修改了,其实根本就没有写入相应的文件内;
--  作者:王锋
--  发布时间:2014/4/23 23:22:04
--  
我给你的意思是你不紧要去改图形上的,文件上的也要去改!
--  作者:youop
--  发布时间:2014/4/24 8:15:18
--  
SetParameter还有啥意义?没什么意思了啊。直接用WritePrivateProfileString把字符串写进去啊,然后手动保存下啊。。。;
--  作者:王锋
--  发布时间:2014/4/24 21:46:59
--  
WritePrivateProfileString 写的配置,没法立即生效的
--  作者:youop
--  发布时间:2014/4/25 8:36:14
--  
明白了,就是SetParameter用来立即修改参数,能用,但是不能保存(我发现只要点一下调整参数,什么也不动,然后按确定就又会变回原来的参数了。),然后用WritePrivateProfileString再写ini,手动保存下。唉,老大,这个感觉也有点鸡肋啊,我用setp就是修改的,要是软件直接帮我保存了,也是可以的啊;