欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → VBS关闭当前框架问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2786人关注过本帖树形打印复制链接

主题:VBS关闭当前框架问题

帅哥哟,离线,有人找我吗?
lyh27557496
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:131 积分:0 威望:0 精华:0 注册:2014/5/29 11:00:33
VBS关闭当前框架问题  发帖心情 Post By:2017/3/28 16:33:15 [只看该作者]

在以下代码中,for循环内通过Application.SendMessage(57602)或者Application.PostMessage(57602)来关闭当前框架时,经常未能成功,特别是操作多个框架时,请问是什么问题?为了避免失去鼠标焦点问题,我还特意在循环里面加了ShowWindow和ActivateFrame来保证选中金字塔主程序和当前框架,但是依然无果。如果把Application.SendMessage(57602)放在循环之外,即先打开所有框架处理完后,再逐个关闭框架,则可正常关闭所有框架,但是这样势必会增加资源占用,导致金字塔崩溃。我现在想要做的操作就是,逐一打开各个框架,打开一个框架后处理完马上关掉这个框架,再打开下一个框架处理完再马上关掉。。。
[此贴子已经被作者于2017/3/28 16:35:10编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lyh27557496
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:131 积分:0 威望:0 精华:0 注册:2014/5/29 11:00:33
  发帖心情 Post By:2017/3/28 16:38:11 [只看该作者]

set list = CreateObject("System.Collections.ArrayList") frameArray = Array("f1", "f2", "f3") frameNum = UBound(frameArray) + 1 for i = 0 to frameNum - 1 set frame = Application.ActivateFrame(frameArray(i)) gridNum = frame.GridCount for j = 0 to gridNum - 1 set grid = frame.GetGridByIndex(j) if grid.FormulaCount = 2 then set formula = grid.GetFormulaByIndex(1) a = formula.GetBufData("info", formula.DataSize-1) list.Add a end if next Application.ShowWindow(3) Application.ActivateFrame(frameArray(i)) Application.SendMessage(57602) next list.Clear set list = nothing set frame = nothing set grid = nothing set formula = nothing

 回到顶部
帅哥哟,离线,有人找我吗?
lyh27557496
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:131 积分:0 威望:0 精华:0 注册:2014/5/29 11:00:33
  发帖心情 Post By:2017/3/28 16:42:08 [只看该作者]

.

[此贴子已经被作者于2017/3/28 16:43:36编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lyh27557496
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:131 积分:0 威望:0 精华:0 注册:2014/5/29 11:00:33
  发帖心情 Post By:2017/3/28 16:43:20 [只看该作者]

set list = CreateObject("System.Collections.ArrayList")
frameArray = Array("f1", "f2", "f3")
frameNum = UBound(frameArray) + 1
for i = 0 to frameNum - 1
    set frame = Application.ActivateFrame(frameArray(i))
    gridNum = frame.GridCount
        for j = 0 to gridNum - 1
            set grid = frame.GetGridByIndex(j)
            if grid.FormulaCount = 2 then
                set formula = grid.GetFormulaByIndex(1)
                a = formula.GetBufData("info", formula.DataSize-1)
                list.Add a
            end if
        next
    Application.ShowWindow(3)
    Application.ActivateFrame(frameArray(i))
    Application.SendMessage(57602)
next
list.Clear
set list = nothing
set frame = nothing
set grid = nothing
set formula = nothing

以上是代码。我去,这是什么破代码编辑器如此反人类,还不能缩进。。。


 回到顶部
帅哥哟,离线,有人找我吗?
lyh27557496
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:131 积分:0 威望:0 精华:0 注册:2014/5/29 11:00:33
  发帖心情 Post By:2017/3/30 9:59:45 [只看该作者]

完全没人理?

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/3/30 10:04:00 [只看该作者]

后面版本我们计划增加关闭框架的函数,请耐心等待一下


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部