分享
 
 
 

关于Visual Basic 6.0类开发(二)

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

在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'大写属性

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

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

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编程中的一个相当有用的技术,同样也是学习和掌握中的难点,类在大型软件工程中应用是非常广泛和卓有成效的,但是,在小型软件开发中,为了提高软件的效率和代码的清晰度,应该避免使用较多的类模块,控件和联接库,取代以标准模块。

本文所示例的代码比较简单,却覆盖了关于模块编程技术的方方面面,希望初学者能够有所借鉴,也希望程序员能够共同探讨。我们应该相信,无论多么复杂的高楼大厦都是由普普通通的方砖堆砌而成的,同样,无论所么复杂的软件工程都是由基本的程序语句所构成的,编程爱好者、程序员和分析员的区别只是在于,用同样的程序语句构建的程序的不同而已。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有