Script Control

u010332918 2013-04-17 03:45:27
加精
最近有接触到Script Control . 有些问题, 需请教各位.
怎么导入Class Module , 然后怎么样需要进行什么处理后, 可以像VB里自由使用.
...全文
1245 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengwu666 2013-05-10
  • 打赏
  • 举报
回复
引用 9 楼 Tiger_Zhao 的回复:
[quote=引用 7 楼 bcrun 的回复:]嗯,会者不难:)虽然这控件支持弄多个Modules相互调用,但有些需求,写成多个类模块,都放在默认的Global模块下可能更合适些
语法中没有 Module .. End Module 吧,所有 AddCode 加进去的 Module 代码其实只属于一个模块吧。 我喜欢在 VB 的 Class 中实现功能点,供 VBS 的简短动态代码调用。不写大段的 VBS。[/quote] 可否加好友讨论下,有个问题需要请教你。看了你的回复,我知道你一定懂得
bcrun 2013-05-10
  • 打赏
  • 举报
回复
补充一下,script_control.AddCode就相当于script_control.Modules("Global").AddCode,而Global这个Module是一开始就默认存在的
大菲212 2013-04-23
  • 打赏
  • 举报
回复
拿分来的
源氏物语 2013-04-22
  • 打赏
  • 举报
回复
看过,谢谢~~~~~
bcrun 2013-04-21
  • 打赏
  • 举报
回复
引用 14 楼 u010394060 的回复:
虽然这控件支持弄多个Modules相互调用,但有些需求,写成多个类模块,都放在默认的Global模块下可能更合适些 .但我不会,帮顶下。
你按4楼的示例,把多个class的代码并列写着就行了
u010394060 2013-04-21
  • 打赏
  • 举报
回复
虽然这控件支持弄多个Modules相互调用,但有些需求,写成多个类模块,都放在默认的Global模块下可能更合适些 .但我不会,帮顶下。
u010377957 2013-04-20
  • 打赏
  • 举报
回复
Tiger_Zhao 2013-04-19
  • 打赏
  • 举报
回复
引用 7 楼 bcrun 的回复:
嗯,会者不难:)虽然这控件支持弄多个Modules相互调用,但有些需求,写成多个类模块,都放在默认的Global模块下可能更合适些
语法中没有 Module .. End Module 吧,所有 AddCode 加进去的 Module 代码其实只属于一个模块吧。 我喜欢在 VB 的 Class 中实现功能点,供 VBS 的简短动态代码调用。不写大段的 VBS。
bangguox 2013-04-19
  • 打赏
  • 举报
回复
虽然这控件支持弄多个Modules相互调用,但有些需求,写成多个类模块,都放在默认的Global模块下可能更合适些 .但我不会,帮顶下
line_us 2013-04-19
  • 打赏
  • 举报
回复
看看有什么技巧。
bcrun 2013-04-19
  • 打赏
  • 举报
回复
引用 8 楼 bangguox 的回复:
虽然这控件支持弄多个Modules相互调用,但有些需求,写成多个类模块,都放在默认的Global模块下可能更合适些 .但我不会,帮顶下
请问你说的多个Modules相互调用,是用的类似我那种先把模块对象用AddObject加到公共模块中去的方式吗
bcrun 2013-04-19
  • 打赏
  • 举报
回复
多个Modules之间的访问,我只找到在VB里先用AddObject暴露对象的办法,上周基于这个方案,替人40元写了个示例。这样写肯定比用class来处理麻烦,相互间调用,中间还要弄了CodeObject
Private Sub DoTestScript2()
    On Error GoTo DoTestScript2
    'On Error GoTo 0
    mScript.WAIT 200
    
    Dim script_control As ScriptControl                                         ' Object
    Dim sMod26 As String, sMod27 As String
    Dim strLine As String
    'Text1.Text = strLine
    sMod26 = "26"
    sMod27 = "27"
    
    Dim vals As Integer
    Dim oModule As Module
    
    vals = 4
    Set script_control = CreateObject("MSScriptControl.ScriptControl")
    script_control.Language = "VBScript"
    'script_control.AddCode strLine
    Set oModule = script_control.Modules.Add("mdl" & sMod27)
    oModule.AddCode ReadTxtFile(App.Path & "\" & sMod27 & ".csq")
    script_control.AddObject sMod27, oModule
    Set oModule = script_control.Modules.Add("mdl" & sMod26)
    oModule.AddCode ReadTxtFile(App.Path & "\" & sMod26 & ".csq")
    script_control.AddObject "list", List1
    script_control.AddObject "Text", Text1
    script_control.AddObject "scrobj", mScript
    
    
    'script_control.Run "main"
    script_control.Modules(sMod26).Run "main"
    'script_control.Modules(sMod27).Run "MSG"
    Exit Sub
    
DoTestScript2:
    If Err <> 0 Then
        MsgBox "错误 " & Err.Number & " (" & Err.Description & ") in procedure Command1_Click of Form Form1"
    End If
    
End Sub
Tiger_Zhao 2013-04-18
  • 打赏
  • 举报
回复
VBS 中只能使用类,不能定义类。
bcrun 2013-04-18
  • 打赏
  • 举报
回复
引用 6 楼 Tiger_Zhao 的回复:
原来可以!学习了。 那么很简单,用 Script Control 的 AddCode 将类定义加进去就是了。
嗯,会者不难:)虽然这控件支持弄多个Modules相互调用,但有些需求,写成多个类模块,都放在默认的Global模块下可能更合适些
vansoft 2013-04-18
  • 打赏
  • 举报
回复
引用 1 楼 theforever 的回复:
“工程”菜单,“添加类模块”->选择“现存”标签,找到要添加的类模块,打开。
高手,人家不是说的这个。是问怎么把class的代码,文本形式的,放到控件里去运行。 以前写过,但都是函数式的。 类的话,应该可以,主要是没动力去研究。
Tiger_Zhao 2013-04-18
  • 打赏
  • 举报
回复
原来可以!学习了。
那么很简单,用 Script Control 的 AddCode 将类定义加进去就是了。
bcrun 2013-04-18
  • 打赏
  • 举报
回复
嗯,定义类没问题,主要是不能定义接口
milaoshu1020 2013-04-18
  • 打赏
  • 举报
回复
引用 3 楼 Tiger_Zhao 的回复:
VBS 中只能使用类,不能定义类。
VBS文件可以定义类的:
dim t
set t = new test

call msgbox(t.prop1)

class test
    property get prop1()
        prop1 = "This is a test."
    end property

    public sub class_initialize()
    end sub
    public sub class_terminate()
    end sub
end class
  • 打赏
  • 举报
回复
“工程”菜单,“添加类模块”->选择“现存”标签,找到要添加的类模块,打开。

1,451

社区成员

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

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