写代码:你懂的。。。想带色不,想折叠不。。。
改代码:窗口管理,设计窗口,找控件,事件,事件代码按钮,写代码,关控件,关窗口,点应用,点按钮测试,累啊。。。
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编辑过]