回 帖 发 新 帖 刷新版面

主题:一个老VFP爱好者说说他的VFP之旅

我2000年开始苦学VFP,主要参考的书是《VisualFoxPro6.0中文版入门与提
高》[清华大学出版社]和《VisualFoxPro6.0入门与应用实例》[李俊德编著 清华大学出版社]2本书。尤其是后一本书,完全可以称的上是当今VFP学习中的经典书籍,你看了它,才知道以往所看的一切VFP类的书和教程都是狗屁!不可能再有书能超过它了,我也完全是靠了它才真正进入并进而掌握VFP的。如果你打算在VFP方面有所长进,非买这本书不可!
     我同时也学了VB6.0、Delphi7.0、PowerBuilder8.0和ASP,基本上都是学习做管理系统。总的感觉是:VB的确简洁明快,功能不凡,我现在有写小程序还在用它做;Delphi很庞大,也比较罗嗦,不过功能强大,让人惊叹,堪称完美,但也复杂,不如VB简单;PowerBuilder8.0简直是狗屁,罗嗦复杂,莫名其妙,功能却幼稚可笑,真不懂一些人为什么还在那里硬撑着说它强大,学它简直是浪费生命,根本不能与VFP相比;ASP很有趣,实际需要掌握的东西很少,但功能强大,简直无所不能,在里面只有想不到没有做不到的,不过要有一点VB的基础编程知识,尤其是它是网络性的编程,前景广阔,我现在正在玩它。:)
    最后说说VFP。说实话,我心情很复杂,我曾经是VFP的狂热拥护者,progranfan是我经常上的网站,我在CSDN的VFP论坛也经常出现,为VFP与不少人打过嘴官司,你可以到那里看看我的一些帖子的。VFP入门并不简单[当然入门后就能轻松掌握了,它要人上的是陡坡,不象其它编程语言那样进门容易,而达到掌握却是长途漫漫],如果你以前从未学过VB之类的编程语言,你可能还不以为然,如果你学过,你简直觉得VFP语言实在糟透了,莫名其妙不说,还很罗嗦,单个表单必须放在同一目录下,不想遭这个罪的就要搞表单集,界面弄的一塌糊涂;在表单的启动处还要对窗口进行一些莫名其妙的设置,开始还要搞什么READ EVENTS ,结束要CLEAR EVENTS ,不然编译出来的EXE文件鬼影一闪就不见了(我曾为这个,将别人的原代码一行行删除排查,花费了3个月才最终搞清楚);还有菜单这种在Deiphi中做起来简直象好玩似的东西,在VFP中要用编辑器,如果要出现在表单上还要搞什么顶层表单;每行程序都要搞this.text1.text这样罗嗦的语法。最终做出来的东西是:界面象玩具,幼稚可笑;莫名其妙的出现错误提示,总是某个变量出现错误,容错功能实在很差;前端界面与后端数据库一损俱损,一荣俱荣,哪个出了问题,包括索引文件出了问题,整个系统就报废了,而重装则意味着曾经输入的数据作废。这种客户端与数据库缠在一起,既是VFP的特点和优点,也是其致命弱点,而用VB+ACCESS、Delphi+ACCESS或SQL2000做的管理系统,客户端界面不完善,重做编译安装,数据库不受影响;数据库出了问题,只需对其进行改造,客户端界面不受牵连。通过ODBC或BDE或OLEDB Privider这根“线”将客户端界面和数据库这两颗“珠”联系起来,其中一者坏了,顶多就是解开“线”重新连接一次罢了。所以,学了VFP,最终还是回走向VB+ACCESS、Delphi+ACCESS或SQL2000做管理系统这条路,VFP不过是热了一下身。也正是这样,注定了VFP是一个悲剧性的东西,而其实,它却的确是一个非常有特色,非常方便快捷的数据库系统开发工具。
    别的不说,就进入VFP之快,就让人很爽,再看看Delphi之类的,我操,等的老婆都要生完孩子了。VFP做出来软件体积很小[只有VC++做的才可与之相比],而且还能在不同系统平台上运行[比起另一跨平台的JAVA老太太它姥姥似的浪费人民生命的奇慢无比,简直就象奔驰之与蜗牛],运行速度奇快,搜索数据之快天下第一,它独特的过滤和查找功能没有哪种语言能及。在熟练掌握语言后,开发速度也非常快;如果不怕麻烦,有创意和决心,它最薄弱的界面问题也是可以得到很大改观的。再看看它很具特色的“自定义属性”、“自定义函数”、“存储过程”,自定义库等,独特而实用,此外非常底层化、精细化的语言,完全掌握后,你会对数据库系统的开发有更清晰完整的认识,而不是除了只会白痴一样的搬一大堆控件来实现功能外,连行正确的程序都编不出来。想真正的通过程序而不是控件来实现并明白数据库系统的工作原理,VFP比Delphi都要强。不过VFP的并不完全面向对象也限制了它功能大发挥,但对于并非比尔·盖次的我们老百姓程序员或爱好者来说,这种限制我实在感觉不到。
    VFP的优点实在太多,我一下子也说不完,何况大家也没那么多时间听了。
    现在我改用Delphi+SQL2000或ASP+ACCESS2000或SQL2000做管理系统了,原因很多,相信许多学VFP的人学到一定程度,基本上也会走我这条路的,到那时,或许我今天没说的东西,他们心里已经明白了。不过,有时间和兴趣,我还会用VFP做一些东西,或建议别人学VFP的,这样做,或许还是因为不能最终忘情于它吧。   hbgth  2004年6月8日下午于武汉

回复列表 (共111个回复)

21 楼

我在12年前学习dos时代的Dbase3。一转眼到了win9x,又到了winxp,由于工作的原因,必须学会用数据库处理工作中的大量数据,数据库中只有vfp接近dbase,所以只好上了vfp的贼船。可是,我的编程知识仍然停留在“非面向对象”时代的面向流程。所以,对于上面侠哥们说的“read even”等等问题深有感触,这个头痛的问题查了若干本书、问了若干人,上了若干网,终于花了6天才解决这个问题。而奇怪的是,很多VFP的教程书籍都没有说明,真不知道这些编者是什么狗屁专家和作者,他奶奶的。[em18]                     另外一个问题到现在还没有解决,就是vfp的主界面总出现在我的程序表单后面,不知道怎样隐藏,有人说用“congfig.fpw”文件中增加对screen的off,试了试,也不行啊,到现在还不知道如何解决,查遍了书刊,报纸,教程,专著,也没有半点眉目,气死人了,最后,我只好把screen的宽高设置为1,并在桌面置中,然后将主表单也置中并不可移动,不可最小化,才隐藏了vfp的主界面了事,但是缺点是我的程序运行时总是有主界面闪晃一下,不够完美。请各位高手出手,谢谢。
     在用vfp编写大段的程序处理数据等情况,我还是没有问题,能写上1、2百行的程序进行处理,真爽啊,有成就感。。。

22 楼

在主程序里加上“_screen.visible=.f.”就好,建议不要用“congfig.fpw”

23 楼

回答zjattj坛友    
    对于你所说的隐藏主窗体的问题,我曾经很是苦恼过。后来我采用的办法是:在窗口初始化程序中,设定主窗体最小化;而且将主表单设为顶层表单。不过运行程序时,回出现窗口一闪的现象,但无伤大雅,而且这一闪我觉得还反而是个特点,就相当于特殊的LOGO了  呵呵。
    具体实现方法,你可参考一下我上传到论坛上的“个人电脑文章管理专家”。在本论坛上我提供过下载地址,你找找看。

24 楼

谢谢楼上两位仁兄。用VFP进行数据处理可真痛快淋漓啊!(别的数据库不会!)

25 楼

各大师好:我是初学者,以前有过一些fox的编程基础,现正徘徊在学哪些开发软件中,恳请大师指点。

26 楼

首先声明:我答话并不表示我是大师啊:)
我的建议是:1.如果时间充足,而且也想平稳过渡,那先还是学学VFP,初步了解面向对象编程的一些常识,然后转向Delphi+SQL2000;如果时间紧迫,而且也不愿意花多余的经历,就直接转向Delphi+SQL2000,不过这样可能难度较大;3.如果想以编程为生,养家糊口。那最好也是最长远的做法就是:放弃以前所学的一切,苦攻C#或者JAVA。[顺便也弄弄ASP.NET和JSP]

27 楼

谢谢你!
我要多向你学习!有QQ的请加我:22761114

28 楼

读过你的文字,有点感动,有点共鸣。同时也更加坚定了我学习VFP得信心与决心。看得出你不是一般的水平,小妹我也几个问题要请教,恳请大侠指点迷津。
1、在我的记录录入界面,怎样用文本框来显示记录号?并且随着记录的增加,记录号自动加一。在录入的表单中有一个保存按钮要求有复制上一个纪录的功能,并能够自动保存记录,改如何写它的CLICK事件。
2、在查询表单中,我的结果该怎样放到表格控件中去?
3、打印时,部分记录如何打印?我设计的是几号记录到几号记录,在文本框输入数字后回车打印,这段语言怎么写?
好了,你能帮我吗?一个真心学VFP的小女孩,真心谢谢你。

29 楼

前几个问题,不是一两句能写清楚的,这样,你所需要的功能在我放到论坛上的“个人电脑文章管理专家”中基本实现了.
下载地址:http://www.programfan.net/upload/2004612571mytext.rar
      最后一个打印的问题,在另一个“个人图书管理专家”中基本实现,可以打印当前单条记录和全部记录。
下载地址:http://www.programfan.net/upload/2004620717library.rar
      以上两个下载地址我已经放在论坛上多日了,可好象从来没人搭理过。呵呵  可能是做的太差了吧 ,不过可以作作参考。

30 楼

反正,虽然我是VFP的菜鸟,可我到底是学过什么basic、C、pascal、C++和delphi之类(尽管也是皮毛),可是,这些语言的主程序中都不会要有什么read events!我强烈抗议:一个优秀的软件就是应该面向用户的,如果给用户设置的要求越多,那么这个软件的性能就越要打折扣。毕竟,软件应该越来越大众化、越来越“傻瓜”化才对!套用一句广告词:科技以人为本呵!
  想想,人发明电脑这玩艺儿、又弄出这许多的程序设计语言,当初的目的可是为了简化生活,可是结果呢?

我来回复

您尚未登录,请登录后再回复。点此登录或注册