在我描述 Thor 中最大的秘密之前,我想先问一下,你所使用的 VFP 是完整的安装版吗?
在 VFP 的安装目录下,有一个 FoxTools.fll 文件。这个文件的历史已经很悠久了。在安装目录里,你也能找到一个foxtools.chm 文件。
如果我告诉你,这个帮助文件的内容并不完整你会怎么想?
很多人都知道 VFP 菜单里调用的一些工具是有源码的。但是很少有人去看这些源码。如果你看过,你一定会对其中一些代码有疑问,因为,你找遍 VFP 安装目录,都找不到一个词的解释。而这些代码中,通常包含有以下划线开头的函数。
你的第一个反应就是,它们是VFP 内置的函数,没有公开。
你猜对了一半。它们没有公开的文档。但是它们不是VFP 内置的函数。它们是 FoxTools.fll 中的函数。
我是从一个叫做isx.prg 的程序里的注释了解到这一结果的。当然,对于它,以后我会在介绍 VFPX 的其他项目时郑重其事的予以介绍。
很幸运的是,当年我顺着这一线索,找到了那份没有公开的文档。并写出了VFP 代码重构的第一个版本。现在,你可以通过访问 https://github.com/vfp9/FoxTools-FLL获取它。当然,你看到的是英文的版本。如果未来我有时间,也许会将它翻译为中文版。
我简单说一下这些函数的作用,以激起你去阅读它的兴趣:这些下划线开头的函数,用于操作VFP IDE 里的各种代码窗口中的代码。无论是开发环境还是运行环境。
你也许对上述的作用很有兴趣,但是,全英文的帮助阅读起来确实是一件相当痛苦的事。
上面说了这么多有什么用呢?可能对你没有丝毫的帮助。但是,Thor 这个工具,“简化了”使用它的难度。换句话说,对其中的最有用的函数做了对象化的封装。
这就是 Thor 中隐藏最深的秘密。
我相信绝大多数下载 Thor 的没有阅读过这一篇,也不明白它到底在讲什么。现在,你应该很清楚了:
https://github.com/vfp9/Thor_CN/blob/master/Docs/Thor_editorwindow_object.md
简而言之,它能让你用最快的方式,对VFP IDE 进行扩展,以满足你想在开发过程中实现的各种针对代码的奇思妙想。如果你不相信,你可以访问:http://www.mzvfp.com/forum/read.php?tid=99675(当然,它基于的是 FoxTools.fll ,如果 VFPX早启动一点时间,我也就不用那么费劲了)。
所有华丽的魔术,背后都是最基本的技能。
这为我们扩展 VFP IDE ,或者说增强 VFP 提供了一个强有力的手段。当然,VFP IDE 的秘密不仅仅只有这一点。
直到下一次……Visual FoxPro Rocks!