📄 感悟visualbasic(1).txt
字号:
感悟VisualBasic(1)
--------------------------------------------------------------------------------
张鸿 时间:2003-11-28 10:02:08
虽然.NET已经触手可及,然而回顾成熟的Visual Basic以及倾听VB程序员积累多年的编程思想应该还能给我们许多启迪。《感悟》系列作者张鸿(Dareblaze),擅长VisualBasic以及Photoshop,代表作品有著名文本编辑软件NaviEdit(http://www.neocactus.com)。
Visual Basic是以Basic语言为基础的语言,十分简单易学,只要稍有语言基础就可以很快掌握。它的可视化的用户界面、点击与拖动式的程序设计方式、完善的即时提示功能和丰富的控件让程序设计人员可以非常方便快速地开发出一个完整的程序。而且到了Visual Basic6.0,Internet应用程序、数据库应用程序的开发变得更加容易,可以说是非常优秀的开发工具。但是在我几年的开发过程中,仍发现有许多VB用户不知如何正确使用这个工具,有的人因为无法用它开发出功能强大的软件而对它产生疑惑。这篇文章的目的就是做一个总体性的指导,让许多正在初学VB的人有一个比较明确的方向。
一、什么时候要用到VB
我学VB以来从国内许多编程论坛可以看到,“要不要学VB”这个问题问的次数实在太多了,回答有“VB已经过时”,有“VB太慢”,有“VB不能进行底层控制”,有“VB不是真正的面向对象”,也有“VB没有指针,不学也罢”……先不论这些回答是否正确,如果一定要我来回答,我一定会说:“你用得着VB吗?那就学吧”。
那么什么时候要用到VB?
“VB已经过时”这样的回答只要仔细想一想就知道不可信,写程序不是为了跟潮流,只要VB程序还能够在新系统上使用,那就没有过时;如果说VB慢,不能进行底层控制,我十分赞同,不过我要先问一下各位的VB程序都是做什么的?是做PI的运算(指3.14159……)?是做大型数据处理?是做操作系统?还是做硬件驱动?非要那么高的速度不可?一定要从底层控制才能运行?在Win32时代,根据所写程序的需要选择一种合适的语言才是你最应该做的事。
我认为,在对速度要求不是很高、不需要直接控制硬件、对程序编译后的体积要求不十分严格的情况下,VB都能派上用场。特别是需要快速开发的情况下,使用VB是十分合适的。
二、如何学会VB
看我上面把VB说得好像还挺不错,不过要学好它也并非随随便便就能做到的。
因为VB的语言基础是Basic,所以前提是要对Basic语言熟悉。然后在学VB之前,最好能买到一本不错的书,一边跟着示例做,慢慢接受VB程序的编写形式。如果你不幸买到一本烂书(比如我),那也没什么好担心的,书里的示例一定会有的,也可以看VB的帮助(建议使用MSDN,需要另外购买,以前是双CD的,现在最新的有三CD。或者也可以看VB5的联机手册,但内容就只限于VB了,对于API等东西没有详细的说明),照着做不多久你就知道一个VB程序是靠事件来驱动的。当初我做的第一个VB程序就是看VB5的联机手册做的。
接着应该找一个项目来完成,不要太难,而要贴近自己的实际,比如做一个资源管理器,做一个小小的文本工具,或者做一个文件分割程序等,别人做过不要紧,重要的是你没有做过。不要幻想马上就可以做个多么好的程序出来,要相信罗马不是一天建成的。在这段时间里你可以慢慢学会使用VBIDE(VB集成开发环境)这个系统,并且熟悉一些经常用到的东西,对你以后的进步是很有帮助的。遇到困难不要管它多难,都应该先自己想办法解决,把写程序当作解决一堆未知的难题来看待。如果自己实在解决不了,就找别人问,不要管别人如何数落你说你多么笨多么蠢,没有人一出生就会讲六国语言。别人也无法帮你解决的,不妨先把问题放一边,其他地方先完成,再一边自己慢慢想。另外记得在这个时候学学COM(到VB里其实就是ActiveX了)。
如果完成了这一步,你一定很有成就感,你已经入门了,你会觉得原来VB要入门很容易。
不过,入门是几段?实在太浅了吧!对呀,所以这个时候把你喜欢用的一些小工具找出来,列一个表,然后自己一个个攻破,慢慢使你的程序可以代替或在某些时候代替你原来的工具(不过并无必要把所有的工具做出来,练习到你可以熟练使用VB这种语言就可以了)。要做到这样,相信你会觉得能力不足(当然,那些不适合用VB写的软件就不要去做了吧),不过不要太多担忧,你应该在这个时候找一本详细说明VB函数的书来做参考,你会发现原来许多问题都有现成函数可以帮你解决;另外要学会使用自己的方法代替一些用起来不怎么灵活的函数,慢慢建立起自己的一套函数库,有空的时候,把自己写过的函数看上几遍,看看能不能再改进。
我相信你是在慢慢进步的,所以有时你有一种想法,但VB提供的方法和函数似乎无法达到你的要求。这就对了,你需要学一学API。
上网找一些API的使用示例、详细说明,然后把学会如何在VB里使用API当做你初学阶段的最后一门学科去攻破吧(其实用不了几小时甚至几十分钟)。也可以暂时找OCX控件来使用,不过一定不要太依赖别人的OCX,不然是不会有进步的。
可能你会问:VB有应用程序向导,为什么没有提到它?的确,VB的应用程序向导是很不错,但在你学会使用VB这种语言之前我还是建议你不要使用(它主要是用来方便快速地建立一个应用程序的框架的)。要从最基础的地方做起,不然一开始你可能搞了很久都不知一个程序是从哪里开始执行,哪里结束的。
你发现在这篇文章里没有提到一点VB程序的技巧。没错,我不会现在告诉你,因为你现在需要的是知道应该如何去学,用什么方法来学。至于学的内容,(小声地)我要给下次骗稿费提供一个机会嘛(原来,是西红柿……我闪)。
三、需要进阶
VB你基本熟悉了,如果你的程序/软件在上一节已经被你解决了,而你又觉得足够的话,那你是没什么必要再学下去了(真的吗?)……不过等一下嘛,我当然知道你VB熟了,许多API会用了,你觉得VB用完了,但还是先过来嘛,来来来,再过来一点,我帮你泼盆冷水……
许多人在这个时候觉得VB被用尽了,不过实际上一切才开始。难道你忘了我上面说的“初学阶段的最后……”吗?只不过完成初学阶段的课程你就想干什么?会用几个控件很了不起吗?
要把VB程序写好,并不只是会简单地使用VB本身的函数和几个API就行。在C程序中,库函数提供的功能都很有限,许多时候我们都使用自己的函数或者使用一些库函数加上自己的方法实现某些功能,在VB中也一样,应该学会灵活使用各种函数并用自己的方法实现VB本身无法实现的功能。如果只会使用VB本身提供的函数,只会照搬书上的例子,那不叫程序设计,而叫死记硬背,没有灵活性可言。
好,你说没有照搬,你说你只是参考,你能自己写出自己的程序,达到和书上的结果一样,不过你会多少书上、网上、别人没有提到过的?你“创造”了什么?对,我用了“创造”这个词,会别人会的东西。参考别人的东西,学别人的东西,到手的只能叫“知识”,但写程序需要的不只是知识,更需要“智慧”。知识是你从别处学来的东西,智慧却是从你自己身上生长出来的东西。
那么面向对象呢?如果写程序不需要面向对象,那么C不会被扩展到C++。一个基于面向对象规则的程序最显而易见的地方就是程序中各个功能模块具有独立性(就是说各个功能成为了一个独立的个体,不因程序的改变而使本身功能产生变化)和封装性(就是说对有意公开的地方在调用的时候是可见的,而其他不打算被使用的东西都被隐藏起来,无法使用,也因此大大减少误用的机会)。我们的程序变得更容易维护,代码可以重复使用,让以后写程序方便许多(更具体的好处你应该自己去尝试然后体会出来)……
对于继承和多态性,因为至VB6为止还无法实现(一定程度的继承是可以做到的,但本文只做学习上的引导,不做技术性的讨论,因此避开不谈),所以就不需要多谈了。至于VB.NET(即VB7),虽然说它已经实现了这两个方面的功能,但现在还未出正式版,我们不作讨论。
四、重新开始
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -