VB6开发领航

Visual Basic 6以友好易学的可视化开发环境闻名于世,成为人们学习计算机编程的首选语言。大学课堂、培训机构都把她列入了教学内容。问许多刚学程序设计人,他们会什么?他们一般会回答:“我会VB!”但是,你要让他们用VB解决一些实际问题,我们就不说大型的软件,就是一个小小的进销存,他们做起来都会觉得吃力!设计不合理,BUG不断,客户需求的变化,软件不可避免地改动,可能会使用一个进销存软件陷入“泥潭”!如果开发一个大型软件,可以想象业务流程的繁锁,功能模块的复杂,用户需求多样化,许多开发小组都有可能陷入这个“焦油坑”(《人月神话》里比喻)。
笔者用VB进行了三年的软件开发,参与设计开发过十几个软件产品,曾为天津市外经贸委计算中心、天津通用软件有限公司主持过一些大型项目,特总结了VB开发之道,如果你正在用VB,但愿对你有所帮助:

第一章  良好的开始是成功的一半
Ø  扎实的基本功
掌握操作系统、数据结构、数据库、软件工程、高等数学等知识,这些基础知识都是在大学学来的,只要基础扎实,这就达到了这一点的要求。如果一个高中生,对软件开发又有极大的热情,那就得花大力补习这些知识。

Ø  兴趣是最好的老师
如果你对编程感兴趣,又渴望开发的软件,掌握一门编程语言是最为重要的了!在学习程序的过程中,会遇到很多的困难,如果你没有兴趣和耐心,是写不好程序的!

Ø  养成好的编程风格和习惯
1.  程序结构清淅,适当地加上注释
为每个过程加上注释
为过程中语句中加上适当注释
在IF…….ENDIF、FOR……Next,Do……While,Select Case……End Select等循环,分支,条件语句进行缩进。

2.  规范地进行控件和变量命令
推荐使用以下方式进行命名:
常用控件的命名:
控件类型 前缀 例子
Form frm frmMain
Menu mnu mnuFileOpen
Label lbl lblHelpMessage
Check box chk chkReadOnly
Combo box cbo cboEnglish
Command button cmd cmdExit
Common dialog dlg dlgFileOpen
Data grid dgd dgdTitles
Date picker dtp dtpPublished
Directory list box dir dirSource
Drive list box drv drvTarget
File list box fil filSource
ADO Data ado adoBiblio
Frame fra fraLanguage
Hierarchical flexgrid flex flexOrders
Image img imgIcon
ImageList ils ilsAllIcons
List box lst lstPolicyCodes
ListView lvw lvwHeadings
Month view mvw mvwPeriod
MS Chart ch chSalesbyRegion
MS Flex grid msg msgClients
MS Tab mst mstFirst
OLE container ole oleWorksheet
Option button opt optGender
Picture box pic picVGA
ProgressBar prg prgLoadFile
RichTextBox rtf rtfReport
StatusBar sta staDateTime
TabStrip tab tabOptions
Text box txt txtLastName
Toolbar tlb tlbActions
TreeView tre treOrganization

变量命名
数据类型 前缀 例子
String (字符串类型) str strFName
Integer (短整数类型) int intQuantity
Long (长整数类型) lng lngDistance
Single (单精度浮点数类型) sng sngAverage
Double (双精度浮点数类型) dbl dblTolerance
Boolean (布尔类型) bln blnFound
Byte (字节类型) byt bytRasterData
Date (日期类型) dte dteNow
Currency (货币计算与定点计算类型) cur curRevenue
Object (对象类型) obj objCurrent
Variant (变体类型) vnt vntCheckSum

在编程过程中,虽然不定义变量类型,VB会自动判断,便效率低,尽量在程序设计时定义变量。最好在模块最上方加上Option Explicit语句,这样强制必须定义变量。


Ø  提高代码的可读性
比如:
Rs.Open "Select * From table", CN, 1, 1
就不如Rs.Open "Select * From table", CN, adOpenDynamic, adLockBatchOptimistic更易读

Ø 注意释放资源
如果用到了如Recordset记录集,注意在Form_Unload事件中释放它

Ø 编写高质量的代码
比如尽量少定义Variant变量,在知道变量是整型时,不要定义为double型等 。
一个最常见的例子:

    Dim str(400) As String
    For I = 0 To 400
        str(I) = "第" & I & "个"
        Text1.Text = Text1.Text & str(I)
    Next
    Dim str(400) As String
    Dim strOut As String
    For I = 0 To 400
        str(I) = "第" & I & "个"
        strOut = strOut & str(I)
    Next
    Text1.Text = strOut



上面两段代码,第一段代码循环取Text属性,第二段代码用循环给变量strOut累计,最后赋值给Text属性。虽然两段代码都得到一样的结果,但是前者的速度就没法与后者相比。要知道存取变量的速度是存取属性的速度的20倍左右,尤其是在循环中!
 还在就是数据库开发人员在编写存储过程时,效率更应该考虑!比如用游标循环读取表操作,超过一万条记录就很慢了!所有说,我们要强调编写高质量的代码!

Ø  在重复对某一对象的属性进行修改时,尽量使用With....End With

Ø  将经常用到的功能写成模块,提高程序的通用性和可维护性

Ø  尽可能地使用枚举
枚举的格式为
[Public | Private] Enum name
membername [= constantexpression]
membername [= constantexpression]
....
End Enum
优点是:加快开发速度

Ø  调试
在调试的时候加断点
用立即窗口进行调试
或用Debug.Print输出到立即窗口

Ø  程序的错误处理
如果没有良好的错误处理,可能导致程序致辞命错误而退出!我们需要错误处理的过程中加入on error 语句进行错误处理。当然,也可以写一个全局的错误处理模块!

Ø  掌握一门数据库开发语言
目前大多数软件开发都用到了数据库,用到比较多的主要有Access、SQL Server和Oracle等。

Ø  多看MSDN,多上网进行交流。
MSDN是编程人员不可缺少的东东,网站和论坛也是解决问题的好去处。
以下是我个人认为的不错的网站:
http://msdn.microsoft.com
http://www.csdn.net
http://www.vbgood.com
http://www.dapha.net
http://www.21code.com
http://www.vbeden.com
http://www.applevb.com
http://www.codestudy.net
http://www.vbaccelerator.com/
http://www.mvps.org/vbnet/
http://www.freevbcode.com/
http://www.pscode.com/vb/
http://www.allapi.net

第二章 用控件组合成一个软件
VB自身提供了许多控件,可以灵活地组合成一个软件。这里所说的组合,是指在业务逻辑的基础上进行组合,而不是随便地组合。
需要掌握的常用控件:工程--->部件--->
Ø  Microsoft Windows Common Controls 6.0
Ø  Microsoft Windows Common Controls 2-6.0
Ø  Microsoft Common Dialog Controls 6.0
Ø  Microsoft Flexgrid Controls 6.0
Ø  Microsoft Hierarchical Flexgrid Controls 6.0
Ø  Microsoft DataGrid Controls 6.0
Ø  Microsoft Internet Controls
Ø  Microsoft Winsock Controls 6.0
Ø  Microsoft Rich TextBox Controls 6.0
一般的软件,用到上述控件就基本上能完成大部分。
1.  首先,我们要学会菜单、工具栏、常用控件的使用,如果你想做浮动工具栏,可以使用ToolBar和CoolBar(Microsoft Windows Common Controls 3-6.0中有个CoolBar),右键CoolBar——>属性-——>带区——>子——>里加入一个ToolBar,这样工具条就可以移动了!

2.  其次,我们要熟练掌握以上控件的属性、方法的使用。软件的界面就是由一些控件组合而成!用户界面是软件可操作性,可用性的体现,我们来看一个例子:
客户管理是一般企业管理软件的常用功能,包括客户增加、删除、查询、打印、维护等,怎么设计这个界面呢?一般来讲,企业的客户一般有分类,分为直接客户、经销客户等等, 有些企业分为国内客户、国外客户等,不同的企业有不同的分法。
则我们可以这样设计:
l  左边一个TreeView,显示客户分类,每种分类用不同的图标表示。(我们可以把客户分类存在数据库中,客户可以维护分类)
l  右边是一个客户列表,用表格显示,一般用MSHFlexGrid或者是ListView的表格形式。
l  当点击左边TreeView的一个节点,右边表格刷新数据,显示当前分类的数据。
l  窗体上方,加一个工具栏,主要有增加、删除、查询、打印、退出等按钮。
l  在右边的客户列表,我们还可以做个右键菜单,可以实现编辑(弹出一个新窗口,编辑当前所选择的客户,还可以在新窗口中打印当前客户资料等)、删除等。
这个界面设计就基本成型了!如果你熟悉数据库SQL ,这个功能就很容易实现!
界面类似于这个:http://www.gci-corp.com/images/fy.gif

3.  如果为了完成某项功能,没有能力或时间开发控件的,可适当使用第三方控件。


第三章 怎样成为一个开发高手
高手的要求:
Ø  熟练使用API
API说到底就是一系列的底层函数,是系统提供给用户用于进入操作系统核心,进行高级编程的途径。如果您想出类拔萃,那么您就不得不学习 API(Application Program Interface,即Windows的应用程序编程接口)编程。不懂API,那可成不了高手。
1)  利用API,我们可以扩展VB标准控件的功能。很明显的,Windows中的控件提供了比VB中的控件多的多的属性。也许Microsoft认为,一个用VB的程序员,永远不会碰到那些属性。

比如TextBox控件,就少一个属性得到它所包含的文本行数,我们可以利用SendMessage很容易就得到:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" 
(ByVal hwnd As Long, _
     ByVal wMsg As Long, _
     ByVal wParam As Long, _
     lParam As Any) As Long
Const EM_GETLINECOUNT = &HBA

Public Function LineCount(txtBox As TextBox) As Long
     LineCount = SendMessage(txtBox.hwnd, EM_GETLINECOUNT, 0&, 0&)
End Function

Private Sub Command1_Click()
    MsgBox LineCount(Text1)
End Sub


Ø  掌握ActiveX 控件开发
VB 6 的“外接程序”菜单下,有个“外接程序管理器”------à选中“ActiveX接口向导”,让他启动/加载,以后我们就可以使用ActiveX接口向导,生成控件的一些常属性、方法、事件。
VB的安装盘和一些网站都有许多控件源码,如http://www.dapha.net
当然,开发一个好的控件也并非易事,他需要程序员的经验积累!

Ø  能进行COM+的开发
COM+提供了企业应用所需要的通用基础设施,使程序员和用户把注意力和精力集中在业务逻辑上,而不是基础设施上。
优点:使组件尽可能地通用、编译时刻特性与运行时刻特性分离、与以前的COM组件兼容、客户和组件的透明性。
大家可以参考:
http://www.icst.pku.edu.cn/CompCourse/

Ø  能进行多种语言的混合编程
每种开发语言都有自己的优势和劣势,有时我们要取长补短。一个好的开发人员,想做一个东西,一般不会受开发工具的限制。他们总是寻找一个好的解决办法,当然不是一味的追求技术上卓越,我们需从时间和金钱上考虑是否可行!如果VB开发人员还会VC,这样会如鱼得水!
小结:
    如果你已经会了上述的要求,开发过大型软件,具备了一定经验,一般可以成为开发队伍中的技术骨干。这时,你就需要进一步提升。一般项目经理的职位,管理十人以内的员工,这样的职位还是可以争取到的!你可别小看这个职位,它是锻炼你管理能力的好机会!这时,我们就得学会如何带领团队进行软件开发!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值