以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]动态编译函数问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=97502)

--  作者:pcxjxjhkw
--  发布时间:2017/3/13 16:51:00
--  [求助]动态编译函数问题

   ‘’‘如果代码有错误,无法捕获错误。

求助大家,谢谢

 

 try
        Dim fun As String =  "QJDM" & k  \'\'函数名 = 全局代码+键值
        Functions.Remove(fun)
        Dim Code As String = drp_dm.Value
        Functions.Add(fun, Code)
        Functions.Complie()
        \' Functions.Execute(fun)
    catch ex As exception
        e.Form.Text = e.Form.Name
        MessageBox.Show("代码编译失败,请检查代码!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error)
        Return
    End try


--  作者:有点蓝
--  发布时间:2017/3/13 17:17:00
--  

试试设置这个事件

http://www.foxtable.com/webhelp/scr/2655.htm

 


--  作者:pcxjxjhkw
--  发布时间:2017/3/14 9:13:00
--  
以下是引用有点蓝在2017/3/13 17:17:00的发言:

试试设置这个事件

http://www.foxtable.com/webhelp/scr/2655.htm

 

Event: 字符型,返回发生错误的事件名称
如何指定某一特定的事件名称,如:窗口2的按钮1的单击事件,

 


--  作者:有点蓝
--  发布时间:2017/3/14 9:27:00
--  
msgbox(Event)弹出看看,这里有就有,没有就没有办法的
--  作者:pcxjxjhkw
--  发布时间:2017/3/14 14:21:00
--  
以下是引用有点蓝在2017/3/14 9:27:00的发言:
msgbox(Event)弹出看看,这里有就有,没有就没有办法的

直接没弹出对话框

 

想实现:动态编译一段代码,如果代码有错则返回False。

[此贴子已经被作者于2017/3/14 14:21:38编辑过]

--  作者:有点蓝
--  发布时间:2017/3/14 15:29:00
--  
就是1楼2楼的用法,不行就没有办法了
--  作者:有点色
--  发布时间:2017/3/14 16:43:00
--  

变通处理下吧,将就还是可以用的。

 

计划1

 

If ShowAppWindow("错误",1) Then
    ShowAppWindow("错误",5)
    vars("成功") = False
    MyTimers("计划1").Enabled = False
End If

 

调试代码

 

vars("成功") = True
Dim fun As String =  "test"
Functions.Remove(fun)
Dim Code As String = "dim 123 as string = 123"
Functions.Add(fun, Code)
MyTimers("计划1").Enabled = True
Functions.Complie()
MyTimers("计划1").Enabled = False
msgbox(vars("成功"))


--  作者:pcxjxjhkw
--  发布时间:2017/3/16 10:06:00
--  
以下是引用有点色在2017/3/14 16:43:00的发言:

变通处理下吧,将就还是可以用的。

 

计划1

 

If ShowAppWindow("错误",1) Then
    ShowAppWindow("错误",5)
    vars("成功") = False
    MyTimers("计划1").Enabled = False
End If

 

调试代码

 

vars("成功") = True
Dim fun As String =  "test"
Functions.Remove(fun)
Dim Code As String = "dim 123 as string = 123"
Functions.Add(fun, Code)
MyTimers("计划1").Enabled = True
Functions.Complie()
MyTimers("计划1").Enabled = False
msgbox(vars("成功"))

测试时发现:错误提示框要闪一下

 


--  作者:有点色
--  发布时间:2017/3/16 10:06:00
--  
 这没办法。
--  作者:pcxjxjhkw
--  发布时间:2017/3/16 11:11:00
--  

上述问题已解决。

 

求解一新的问题:在动态编译函数时,当第一个函数编译错误后,后面所有的函数编译都提示第一个函数的错误信息,无法编译,注,后面的函数代码是正确的。