Visual Basic 6.0开发(入门教程分享)
更新时间:2023-12-17 05:00:01 阅读量: 教育文库 文档下载
关于Visual Basic 6.0类开发 (vb 类模块 学习 入门 教程)
关于Visual Basic 6.0类开发(上)
--------------------------------------------------------------------------------
对程序员和编程爱好者来说,VB中类的技术是学习中的一个难点,在大型软件的开发过程中,模块(Moudle)、控件(Active ocx)、链接库(Active dll)和类(Class moudle)构成了系统化、高效化的软件工程,而类的技术是控件和链接库技术的基础,因此掌握类的理论和编程方法是非常有意义的。
(一)类的基本定义和应用概述;
类是包含了方法、属性、数据成员的高级代码模块,它既在模块的范畴之内,又是一个没有图形界面的Active ocx,程序员可以象使用控件一样使用它,但却不能看到它,值得注意的是,类是不能继承的。
类能够使我们高效的完成对某一个或者某几个特定的对象的复杂操作,对象的动作就是类的方法,对象的属性就是类的属性过程。相对而言,如果编程的对象是一组事物,那么,我们采用标准模块的方式是非常合适的,在下列两种情况下,应该使用类进行代码处理:
(1)创建大量性质相近的对象; (2)提高代码的封装性。
类的创建非常简单,在进行代码编写的时候,在“工程”菜单中选择“添加类模块”项目,就可以添加一个空白的类。
类文件一般以.cls作为扩展名保存。 (二)类的方法的实现;
类的方法类似于动态链接库的接口函数,它能够接受其他窗体代码的指定类型参数,并且传递到类中。一般来说类的方法是能够指定是否有返回值的。它在类中通常是一个public过程。请看下面的代码示例,它使一个密码框拒绝非字母的输入:
(1)类cls的代码; Option Explicit'变量检查
Private WithEvents mytxt As TextBox '本类中的方法接受和控制一个text密码框 Dim isNUM As Boolean '类的模块级变量
Public Sub Attach(itTEXT As TextBox) '接受外部变量到mytxt中 Set mytxt = itTEXT End Sub
http://baowen.heiliang.net/ 喜欢的继续看下去http://www.fengxing6.com/
Private Sub mytxt_KeyUp(KeyCode As Integer, Shift As Integer) isNUM = (KeyCode >= 65) And (KeyCode <= 90) '测试密码框的键盘输入是否是英文字母 If isNUM = False Then Beep
mytxt.Text = \
'如果输入不是英文字母则响铃并且清空密码框内容 MsgBox \非法字符输入!\ End If
Debug.Print mytxt.Text '调试输出密码框内容 End Sub '类的代码结束 (2)类的引用;
已经编写完成的类可以经过两种格式进行引用,第一种方式:Private(public或者dim) myCLS(指定的类名) As New cls(编写完成的类名);第二种方式较多用于程序编写风格较“老”的程序员:首先在窗体代码中进行模块级声明――Dim myCLS As cls,然后在具体代码过程中进行具体定义―― Set mycls = New cls。这两种方式的效率和代码的简洁性方面可能会有所差别,但在笔者的编程实践中,并没有什么特别的感觉,不过我较多使用第一种方式,因为它书写起来更加方便。另外,在代码结束的时候,使用 Set myCLS = Nothing来取消类的资源占用是一种非常好的编程习惯。
在窗体form1中(窗体有一个密码框控件text1,passworldchar=\添加以下代码: Option Explicit
Private myCLS As New cls '引用cls
Private Sub Form_Load() myCLS.Attach Text1 '启动类 End Sub
'在代码结束时记得释放资源
Private Sub Form_Unload(Cancel As Integer) Set myCLS = Nothing End End Sub
http://baowen.heiliang.net/ 喜欢的继续看下去http://www.fengxing6.com/
本文代码展示了类的方法的代码编写过程和调用方式(尽管它和类的事件非常相似),它的效果是,如果密码框中被输入了非字母,则系统振铃,并删除密码框中的原来的数据――在一定程度上保护密码。
类的方法可以不需要任何参数,这一点类似一个public的函数或者过程,它也是类中使用最广泛的。在下一篇文章中我将讨论,如何使用类的属性、事件和方法进行综合编程。(未完待续)
Top 2 楼
关于Visual Basic 6.0类开发(下)
在Visual Basic 6.0类的技术与应用(上)(以下简称上文)中,我们讨论了类的理论、类的创建和类的方法的编程实践,实际上,类之所以能够在软件工程中广泛应用,最主要的一点是它可以非常方便的封装许多编程需要的属性,这不仅使程序员在一定程度上克服控件(ocx)和链接库(dll)设计和调试中的复杂性,而且能够提高程序代码的简洁和高效性――本文将讨论完整的类的编程,包括方法、属性和基本事件。
(一)类的属性的特征和定义;
类似于标准控件的属性,类的属性允许用户在指定的数据范围内进行赋值,这些值被类内的各个代码部分所共享。属性的获得和传递需要经过 Property Let和Property Get语句进行编程,当然,我们首先需要在类中进行全局或者模块级的相应变量定义。
(二)事件的属性和基本定义;
和窗体的事件类似,类也有两个基本的事件,Class_Initialize(类加载时触发)和Class_Terminate(类卸载时触发),这两个事件都是private的。实际上,我们完全可以忽略这两个事件――只要你记得完善类的方法和属性。
类同样可以定义自己的事件,它和方法的程序编写格式类似,只不过需要WithEvents关键字进行参数声明,而且事件不能有任何命名参数或者可选参数,它也没有返回值。
实际上,结构良好的方法和属性完全可以替代结构复杂的类的事件。 (三)类的方法、事件和属性的编程实例;
本程序的设计目的是,通过类控制窗体中文本框的内容的全部大写、小写和逆向排序转化。 为了方便代码的书写和调用,我在类中引用了枚举的编程方法。 以下代码在类Class1: Option Explicit
Private WithEvents myTXT As TextBox '方法的参数接口 Public Enum sTYLE Lcaseit'小写属性 Lbigit'大写属性
http://baowen.heiliang.net/ 喜欢的继续看下去http://www.fengxing6.com/
Nlogoit'逆向排序属性 End Enum
'自定义枚举,用来实现属性的自动赋值 Private mvarBiaozhi As sTYLE '实现枚举常量的连接
Public Function dONE() As String' 'DONE方法用来根据指定的枚举属性,对 '窗体文本框进行相应的字符转化操作 '并且返回转化后的字符串 If mvarBiaozhi = Nlogoit Then dONE = StrReverse(myTXT) '逆向排序
ElseIf mvarBiaozhi = Lcaseit Then dONE = LCase(myTXT) '强制小写转化 Else
dONE = UCase(myTXT) '强制大写转化 End If End Function 'DONE方法结束
Public Property Let Biaozhi(ByVal vData As sTYLE) '获得属性的被赋的值 mvarBiaozhi = vData End Property
Public Property Get Biaozhi() As sTYLE '传递属性值到类中 Set Biaozhi = mvarBiaozhi End Property
Public Sub Attach(itTEXT As TextBox) '连接类的方法 Set myTXT = itTEXT
http://baowen.heiliang.net/ 喜欢的继续看下去http://www.fengxing6.com/
End Sub
Private Sub Class_Initialize() '本事件在类倍加载时激活
MsgBox \你好!本程序向您展示使用类的方法、属性、事件进行编程的技术!\ End Sub
Private Sub Class_Terminate() '本事件在类被卸载时激活
MsgBox \你好!记得在Class_Terminate中填写对象撤销后的代码!\ End Sub
'类的代码全部结束
(四)窗体代码的引用编程;
在窗体FORM1中添加文本控件TEXT1、下拉列表控件COMBO1、命令按钮COMMAND1(CAPTION=\开始转化\),调整三个控件到适当位置。
Dim myT As New Class1 '类的引用
Private Sub Form_Load() Combo1.Clear
Combo1.AddItem \字符串大写转化\ Combo1.AddItem \字符串小写转化\ Combo1.AddItem \字符串逆向排序\ Combo1.ListIndex = 0 '在列表框中添加属性选项 End Sub
Private Sub Command1_Click() '当命令按钮按下时激活类 myT.Attach Text1 '方法参数联接
Select Case Combo1.ListIndex Case 0
myT.Biaozhi = Lbigit Case 1
myT.Biaozhi = Lcaseit
http://baowen.heiliang.net/ 喜欢的继续看下去http://www.fengxing6.com/
Case 2
myT.Biaozhi = Nlogoit End Select
'根据列表框的选择,给类的Biaozhi属性赋值 '注意,在编程环境中,上述属性值自动添加 Text1.Text = myT.dONE '返回排序结束后的字符串 End Sub
Private Sub Form_Unload(Cancel As Integer) Set myT = Nothing End
'良好的编程习惯 End Sub
怎么样,我们的代码看起来如此的简洁,这种感觉就象是在使用一个控件,不仅可以随心所欲的调用,而且方便的使用了vb的自动提示功能。
(五)关于类的编程技术的总结;
严格的说,类是vb编程中的一个相当有用的技术,同样也是学习和掌握中的难点,类在大型软件工程中应用是非常广泛和卓有成效的,但是,在小型软件开发中,为了提高软件的效率和代码的清晰度,应该避免使用较多的类模块,控件和联接库,取代以标准模块。
本文所示例的代码比较简单,却覆盖了关于模块编程技术的方方面面,希望初学者能够有所借鉴,也希望程序员能够共同探讨。我们应该相信,无论多么复杂的高楼大厦都是由普普通通的方砖堆砌而成的,同样,无论所么复杂的软件工程都是由基本的程序语句所构成的,编程爱好者、程序员和分析员的区别只是在于,用同样的程序语句构建的程序的不同而已。
http://baowen.heiliang.net/ 喜欢的继续看下去http://www.fengxing6.com/
Case 2
myT.Biaozhi = Nlogoit End Select
'根据列表框的选择,给类的Biaozhi属性赋值 '注意,在编程环境中,上述属性值自动添加 Text1.Text = myT.dONE '返回排序结束后的字符串 End Sub
Private Sub Form_Unload(Cancel As Integer) Set myT = Nothing End
'良好的编程习惯 End Sub
怎么样,我们的代码看起来如此的简洁,这种感觉就象是在使用一个控件,不仅可以随心所欲的调用,而且方便的使用了vb的自动提示功能。
(五)关于类的编程技术的总结;
严格的说,类是vb编程中的一个相当有用的技术,同样也是学习和掌握中的难点,类在大型软件工程中应用是非常广泛和卓有成效的,但是,在小型软件开发中,为了提高软件的效率和代码的清晰度,应该避免使用较多的类模块,控件和联接库,取代以标准模块。
本文所示例的代码比较简单,却覆盖了关于模块编程技术的方方面面,希望初学者能够有所借鉴,也希望程序员能够共同探讨。我们应该相信,无论多么复杂的高楼大厦都是由普普通通的方砖堆砌而成的,同样,无论所么复杂的软件工程都是由基本的程序语句所构成的,编程爱好者、程序员和分析员的区别只是在于,用同样的程序语句构建的程序的不同而已。
http://baowen.heiliang.net/ 喜欢的继续看下去http://www.fengxing6.com/
正在阅读:
Visual Basic 6.0开发(入门教程分享)12-17
道德讲堂领导点评发言稿03-26
常吃黑木耳的5大好处黑木耳的营养和功效06-26
八年级英语上学期第1-3单元练习题112-19
第一次登台诵读作文600字06-30
小学生搬家优秀作文06-15
《二号首长》三部曲人物关系介绍02-20
公安工作的基本方针和基本政策06-07
船代 外勤 知识题库12-06
继电保护压板退投规定11-09
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 入门教程
- Visual
- 开发
- 分享
- Basic
- 6.0
- 四川建筑历史
- 第二章过国民收入核算答案
- 换热站及地沟热力施工组织设计
- 宏观经济学习题答案(曼昆第五版) - 图文
- 石墨烯制方法:Hummers法
- 早熟芋六月红高产栽培技术
- 2016年全国高考理综试题及答案全国卷1
- 五年级上册三四单元教案
- 对甫小学学生心理健康教育个案辅导记录表 - 图文
- 四年级数学下册 乘法交换律结合律教案 冀教版
- 江苏省盐城中学2014-2015学年高一语文暑假作业9 苏教版
- 视频监控的智能预警分析
- 在美国留学打工的五点注意
- GPS之Pre-SAW与Post-SAW的探讨 - 图文
- PCS7 V7.0过程对象视图使用入门
- 建筑给排水毕业设计 开题报告
- 湿地保护项目商业计划书
- 2018年阜阳市小学毕业小升初模拟数学试题(共4套)附详细答案
- 第九届晋江校园科技文化艺术节比赛规则
- 信息碎片化降低人们的认知水平 一辩稿