以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  能不能通过DynamicWrapper打开关闭金字塔框架?  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=157811)

--  作者:lyh27557496
--  发布时间:2017/9/12 9:22:50
--  能不能通过DynamicWrapper打开关闭金字塔框架?
http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&replyID=434963&ID=149886&skin=1 如上面帖子据说,使用Application.SendMessage(57602)来关闭框架经常会无缘无故中断,如果这个问题无法解决,那能不能通过DynamicWrapper来打开或关闭框架? 或者用Application.SendMessage可以打开框架,用来代替ActivateFrame?
--  作者:yukizzc
--  发布时间:2017/9/12 10:01:22
--  

可以用frame框架对象下的

Close                     关闭当前打开的该框架


--  作者:lyh27557496
--  发布时间:2017/9/12 10:09:51
--  
但是close在for循环里是先打开所有框架后,才一个一个关闭的,不是打开1个关闭1个的,是我的用法有问题吗?
--  作者:无为剑
--  发布时间:2017/9/12 10:13:38
--  
示例代码你贴一下
--  作者:lyh27557496
--  发布时间:2017/9/12 10:20:53
--  
sub test() arr = Array("f1", "f2") N = UBound(arr) + 1 for i = 0 to N - 1 set f = Application.ActivateFrame(arr(i)) f.close next end sub 我的本意是希望打开f1后就关闭f1,接着再打开f2再关闭f2。 但是上面的代码结果是先打开f1、f2,再关闭f1,再关闭f2。
--  作者:lyh27557496
--  发布时间:2017/9/12 10:24:01
--  

图片点击可在新窗口打开查看此主题相关图片如下:屏幕快照 2017-09-12 上午10.22.05.png
图片点击可在新窗口打开查看
我的本意是希望打开f1后就关闭f1,接着再打开f2再关闭f2。 但是上面的代码结果是先打开f1、f2,再关闭f1,再关闭f2。
--  作者:lyh27557496
--  发布时间:2017/9/12 10:28:59
--  
我在f.close前面增加了msgbox arr(i),结果是先打开f1,弹出对话框,按确定后打开了f2,同时关闭了f1,弹出下一个对话框。 感觉是窗口焦点的问题。
--  作者:yukizzc
--  发布时间:2017/9/12 10:33:44
--  

call Technic.Close
call ReportPro.close

你这样就能直接关闭两个框架


--  作者:lyh27557496
--  发布时间:2017/9/12 10:40:05
--  
这样一个一个关闭代码要写很多行,我想用在多框架循环里面。 刚刚试了下在set f = Application.ActivateFrame(arr(i))前面增加一行Application.PeekAndPump即可实现循环逐个关闭框架了。谢谢了
--  作者:lyh27557496
--  发布时间:2017/9/12 10:57:42
--  
如果要关闭自定义的框架名,比如f1,代码要怎么写呢?