ScriptControl控件如何访问全局变量

cqcpl 2008-07-24 10:08:05
请问大侠,VB中,ScriptControl控件如何访问在模块中定义的全局变量
...全文
103 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2008-07-24
  • 打赏
  • 举报
回复
这种需求就需要调整程序结构了:
·将原先声明在 Module 中的全局变量全部移到一个 Class 中
·在 Module 中声明一个该 Class 的全局实例
·将该实例通过 AddObject 加到 ScriptControl 中
这样无论在工程中还是通过脚本,对全局实例中的成员(原先的全局变量)的访问是一致的。
cqcpl 2008-07-24
  • 打赏
  • 举报
回复
哦!一说就明白了,我是用一个List控件传递的数据,也能成功,可是看那代码就不爽,而且关键的是,复杂结构的数组根本行不通
_l_ 2008-07-24
  • 打赏
  • 举报
回复

我上面代码的 FOR 循环 就是把一个数组的数据 里的数据传递到脚本里

我这段代码 就是有几千个变量的数据
把 我写在脚本里的 如同 [1]医院.化验.收入*0.9+[123]门诊.化验.收入*0.1 里面的东西替换成 888888*0.9+[321*0.1
之后再把计算结果返回到 JSJG

当然我是用替换大法 是笨办法 不过速度很快 如果谁有更好的办法 希望能说出来
cqcpl 2008-07-24
  • 打赏
  • 举报
回复
完全没看懂啊.
我的意思是我定义了一个全局变量的数组a,可以在每个窗体中访问,我也想在脚本中访问它,
_l_ 2008-07-24
  • 打赏
  • 举报
回复
我是在脚本里面写一个特殊字符 用 Replace 替换掉
这样数据不就进去了吗?

scr.Language = "vbscript"
If txtGS <> "0" Then
For i = 1 To UBound(SZ)
txtGS = Replace(txtGS, SZ(i, 1), SZ(i, 2))
'Debug.Print SZ(i, 1), txtGS
Next
End If
'通过脚本计算器来计算出结果
On Error Resume Next
JSJG = scr.Eval(txtGS)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧