王朝网络
分享
 
 
 

VB6开发领航(一)

王朝vb·作者佚名  2006-01-08
宽屏版  字体: |||超大  

VB6开发领航

Visual Basic 6以友好易学的可视化开发环境闻名于世,成为人们学习计算机编程的首选语言。大学课堂、培训机构都把她列入了教学内容。问许多刚学程序设计人,他们会什么?他们一般会回答:“我会VB!”但是,你要让他们用VB解决一些实际问题,我们就不说大型的软件,就是一个小小的进销存,他们做起来都会觉得吃力!设计不合理,BUG不断,客户需求的变化,软件不可避免地改动,可能会使用一个进销存软件陷入“泥潭”!如果开发一个大型软件,可以想象业务流程的繁锁,功能模块的复杂,用户需求多样化,许多开发小组都有可能陷入这个“焦油坑”(《人月神话》里比喻)。

笔者用VB进行了三年的软件开发,参与设计开发过十几个软件产品,曾为天津市外经贸委计算中心、天津通用软件有限公司主持过一些大型项目,特总结了VB开发之道,如果你正在用VB,但愿对你有所帮助:

第一章 良好的开始是成功的一半

Ø 扎实的基本功

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

Ø 兴趣是最好的老师

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

Ø 养成好的编程风格和习惯

1. 程序结构清淅,适当地加上注释

为每个过程加上注释

为过程中语句中加上适当注释

在IF…….ENDIF、FOR……Next,Do……While,Select Case……End Select等循环,分支,条件语句进行缩进。

2. 规范地进行控件和变量命令

推荐使用以下方式进行命名:

在编程过程中,虽然不定义变量类型,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,这样会如鱼得水!

小结:

如果你已经会了上述的要求,开发过大型软件,具备了一定经验,一般可以成为开发队伍中的技术骨干。这时,你就需要进一步提升。一般项目经理的职位,管理十人以内的员工,这样的职位还是可以争取到的!你可别小看这个职位,它是锻炼你管理能力的好机会!这时,我们就得学会如何带领团队进行软件开发!

下期预告:

第四章 系统分析和架构

第五章 带领团队进行软件开发

‘***************************************************************

‘Author:李洪根

‘E-MAIL: lihonggen0@163.com lihonggen0@gci-corp.com

‘个人专栏:http://www.csdn.net/develop/author/netauthor/lihonggen0/

‘如需引用,请指明出处! CSDN论坛VB版欢迎您!

‘***************************************************************

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有