以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [分享]代码帮的来吧,已添加示例  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=25144)

--  作者:wfkbabro
--  发布时间:2012/11/1 16:56:00
--  [分享]代码帮的来吧,已添加示例

写代码:你懂的。。。想带色不,想折叠不。。。

改代码:窗口管理,设计窗口,找控件,事件,事件代码按钮,写代码,关控件,关窗口,点应用,点按钮测试,累啊。。。

10步得有吧,现在只要3步,亲,只要3步,即可投篮!现在,写好代码保存,点按钮装载代码,点按钮测试

 

好吧,把思路介绍下,针对上面两个问题:

1.内部函数不在foxtable里写,而在功能更强大的你喜欢的编辑器里写,然后在FOXTABLE里用一个按钮读进去动态生成。

2.将所有窗口的事件,带表名、窗口名、控件名三个参数传递到一个内部函数里去处理,便于集中调试代码。例如click事件整合到n_formClick,DoubleClick整合到n_formDoubleClick, 如果效率能接受,你的窗口事件可以整合到一个函数里去处理。

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20121102131900.png
图片点击可在新窗口打开查看

附件随后:
 

 

 

一、在窗口的click事件添加了这个,喜欢吗?

Functions.Execute("n_formClick",e.Form.TableName,e.Form.Name,e.Sender.name)

n_formClick是自定义函数名,你可以换成其它的(这个函数名就是等下要在外部文本文件里定义的Sub n_formClick)

 

 

二、用foxtableCode.vb(这个文件名也是自定义的,自己换) 按vb格式写代码n_formClick内部函数,当然,你还可以写毛毛多的,做到集中写代码,亲,是不是实现了这个梦想,想用什么编辑器就用什么编辑器,什么代码折叠,自动完成,加亮提示等等自己随便折腾。

再也不要切来切去,再也不要找来找去,再也那啥,不多说了

foxtableCode.vb,格式要求:

1.[]标记起来的内容大小写固定、空格量固定: [Sub 内部函数名]、[End Sub]

2.自己写的内部函数里,不要出现:[Sub ]、[End Sub]、chr(11),不要有FOXTABLE里已定义的函数

3.其它无要求,文件名可以是TXT等,测试支持FOXTABLE内所有功能。

4.如有,求editplus或其它工具的FOXTABLE自动提示包

 

foxtableCode.vb示例

Sub test1
Dim a = 2
MsgBox("a11")
MsgBox("中文E测试")

End Sub

Sub test2
Dim a = 2
MsgBox("中文E测试"&1234)

End Sub

 

实现方法,只要两步: 

1.先按上面要求整个foxtableCode.vb 文件

2.自建个窗口,一按钮,以后每次在你的极品编辑器里编辑好代码后,按一下按钮就调进去了。按钮事件定义为下:

[code]

Dim File As String = ProjectPath & "foxtableCode.vb"
If Not FileSys.FileExists(File) Then
    MessageBox.Show("没有发现指定的代码文件, 请检查或与您的服务商联系! ","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Question)
Else
    StatusBar.Message2 = "正在执行代码, 请稍候..."
    Application.DoEvents
    Dim i,ti,l,fnTitle,fnCode,tA,tstr
    Dim tCodeall As String = FileSys.ReadAllText(File,System.Text.Encoding.Default)
    tA = replace(tCodeall,"End Sub",chr(11)).split(chr(11))
    l = tA.length-1
    For i=0 To l
        StatusBar.Message2 = "正在执行代码, 请稍候..." & i & "-" & l
       
        tstr = trim(tA(i))
        output.show ("\\n" & i & "-" & tstr)
        ti = InStr(tstr,"Sub ")
        If ti = 0 Then
            Continue For
        End If
        tstr = mid(tstr,ti)
        If left(tstr,4) = "Sub " Then
            ti = InStr(tstr,vbcrlf)
            If ti>0 Then
                fnTitle = trim(mid(tstr,4,ti-4))
                fnCode = mid(tstr,ti)
                \'msgbox(fntitle & "-" & vbcrlf & fnCode)
                try
                    Functions.Remove(fnTitle)     \'先删除函数
                    Functions.Add(fnTitle,fnCode)   \'添加
                    Functions.Complie()         \'编译
                    \'Functions.Execute(fnTitle)    \'执行
                catch ex As Exception
                    msgbox("function.add Err")
                End Try
            End If
        End If
    Next
    \'tstr = tA(0) \'& split("a,b,c",",")(0)
    \'tstr = InStr(tcodeall,"vbcrlf")
    \'output.show (tstr)
    \'    Functions.Add("Zdy",Code)   \'添加
    \'    Functions.Complie()         \'编译
    \'    Functions.Execute("Zdy")    \'执行
    \'    Functions.Remove("Zdy")     \'代码执行完毕即删除函数
    \'    StatusBar.Reset
    StatusBar.Reset
End If
[code]

另外,感谢在 foxtable技术联盟_01-03 等群里帮助过我的朋友们。

演示文件如下:

以下内容只有回复后才可以浏览


2016.12.28补充
送给大家辅助开发FOXTABLE的好东东
http://www.foxtable.com/BBs/dispbbs.asp?boardid=2&id=78158&authorid=0&page=0&star=1

[此贴子已经被作者于2016/12/28 21:00:52编辑过]

--  作者:unverse
--  发布时间:2012/11/1 17:03:00
--  

呃。。。不发个效果图看看嘛。


--  作者:woiz
--  发布时间:2012/11/1 17:06:00
--  

n_formClick 是什么?

 

哦,才明白,加内部函数。

 

不过这样做的话,在内部函数那里看不到

[此贴子已经被作者于2012-11-1 17:13:18编辑过]

--  作者:wfkbabro
--  发布时间:2012/11/1 17:07:00
--  

这个有啥效果图啊!就只是为了方便调试代码,管理代码,

以前要切来切去,窗口管理,设计窗口,找控件,事件,事件代码按钮,写代码,关控件,关窗口,点应用,点按钮,累啊。。。

10步,化为3步

现在,写好代码保存,点按钮装载代码,点按钮测试

 


--  作者:lin_hailun
--  发布时间:2012/11/1 17:08:00
--  
 楼主很非主流……这样,狐表自带的Tab键补全都用不上了。

 不过,用来开发外部应用还行。

--  作者:woiz
--  发布时间:2012/11/1 17:30:00
--  

这个也有一个好处,源码加密,在狐表的内部函数中找不到源码,不过可以直接使用

 


--  作者:wfkbabro
--  发布时间:2012/11/1 17:40:00
--  
加密不现实,进狐表后你也得解密成明文不是,如能进系统菜单也没什么秘密了
--  作者:wfkbabro
--  发布时间:2012/11/1 17:41:00
--  
主要是为了 提高写代码、调试效率
--  作者:hanxuntx
--  发布时间:2012/11/1 17:51:00
--  

楼主辛苦。学习了


--  作者:布莱克朱
--  发布时间:2012/11/1 18:07:00
--  
做个例子 看看 还是有些不明白!