vb6类模块学习入门经典教程收藏.docx

上传人:b****0 文档编号:9752862 上传时间:2023-05-21 格式:DOCX 页数:10 大小:24.83KB
下载 相关 举报
vb6类模块学习入门经典教程收藏.docx_第1页
第1页 / 共10页
vb6类模块学习入门经典教程收藏.docx_第2页
第2页 / 共10页
vb6类模块学习入门经典教程收藏.docx_第3页
第3页 / 共10页
vb6类模块学习入门经典教程收藏.docx_第4页
第4页 / 共10页
vb6类模块学习入门经典教程收藏.docx_第5页
第5页 / 共10页
vb6类模块学习入门经典教程收藏.docx_第6页
第6页 / 共10页
vb6类模块学习入门经典教程收藏.docx_第7页
第7页 / 共10页
vb6类模块学习入门经典教程收藏.docx_第8页
第8页 / 共10页
vb6类模块学习入门经典教程收藏.docx_第9页
第9页 / 共10页
vb6类模块学习入门经典教程收藏.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

vb6类模块学习入门经典教程收藏.docx

《vb6类模块学习入门经典教程收藏.docx》由会员分享,可在线阅读,更多相关《vb6类模块学习入门经典教程收藏.docx(10页珍藏版)》请在冰点文库上搜索。

vb6类模块学习入门经典教程收藏.docx

vb6类模块学习入门经典教程收藏

关于VisualBasic6.0类开发(vb类模块学习入门教程)

关于VisualBasic6.0类开发(上)

--------------------------------------------------------------------------------

  对程序员和编程爱好者来说,VB中类的技术是学习中的一个难点,在大型软件的开发过程中,模块(Moudle)、控件(Activeocx)、链接库(Activedll)和类(Classmoudle)构成了系统化、高效化的软件工程,而类的技术是控件和链接库技术的基础,因此掌握类的理论和编程方法是非常有意义的。

(一)类的基本定义和应用概述;

  类是包含了方法、属性、数据成员的高级代码模块,它既在模块的范畴之内,又是一个没有图形界面的Activeocx,程序员可以象使用控件一样使用它,但却不能看到它,值得注意的是,类是不能继承的。

类能够使我们高效的完成对某一个或者某几个特定的对象的复杂操作,对象的动作就是类的方法,对象的属性就是类的属性过程。

相对而言,如果编程的对象是一组事物,那么,我们采用标准模块的方式是非常合适的,在下列两种情况下,应该使用类进行代码处理:

  

(1)创建大量性质相近的对象;

  

(2)提高代码的封装性。

  类的创建非常简单,在进行代码编写的时候,在“工程”菜单中选择“添加类模块”项目,就可以添加一个空白的类。

  类文件一般以.cls作为扩展名保存。

  

(二)类的方法的实现;

  类的方法类似于动态链接库的接口函数,它能够接受其他窗体代码的指定类型参数,并且传递到类中。

一般来说类的方法是能够指定是否有返回值的。

它在类中通常是一个public过程。

请看下面的代码示例,它使一个密码框拒绝非字母的输入:

  

(1)类cls的代码;

  OptionExplicit'变量检查

   PrivateWithEventsmytxtAsTextBox

   '本类中的方法接受和控制一个text密码框

   DimisNUMAsBoolean

   '类的模块级变量

   PublicSubAttach(itTEXTAsTextBox)

   '接受外部变量到mytxt中

   Setmytxt=itTEXT

  EndSub

  PrivateSubmytxt_KeyUp(KeyCodeAsInteger,ShiftAsInteger)

    isNUM=(KeyCode>=65)And(KeyCode<=90)

    '测试密码框的键盘输入是否是英文字母

    IfisNUM=FalseThen

     Beep

     mytxt.Text=""

     '如果输入不是英文字母则响铃并且清空密码框内容

     MsgBox"非法字符输入!

"

    EndIf

    Debug.Printmytxt.Text

    '调试输出密码框内容

    EndSub

   '类的代码结束

  

(2)类的引用;

  已经编写完成的类可以经过两种格式进行引用,第一种方式:

Private(public或者dim)myCLS(指定的类名)AsNewcls(编写完成的类名);第二种方式较多用于程序编写风格较“老”的程序员:

首先在窗体代码中进行模块级声明――DimmyCLSAscls,然后在具体代码过程中进行具体定义――Setmycls=Newcls。

这两种方式的效率和代码的简洁性方面可能会有所差别,但在笔者的编程实践中,并没有什么特别的感觉,不过我较多使用第一种方式,因为它书写起来更加方便。

另外,在代码结束的时候,使用SetmyCLS=Nothing来取消类的资源占用是一种非常好的编程习惯。

  在窗体form1中(窗体有一个密码框控件text1,passworldchar="*")添加以下代码:

  OptionExplicit

   PrivatemyCLSAsNewcls

   '引用cls

   PrivateSubForm_Load()

   myCLS.AttachText1

   '启动类

  EndSub

  '在代码结束时记得释放资源

  PrivateSubForm_Unload(CancelAsInteger)

   SetmyCLS=Nothing

  End

 EndSub

  本文代码展示了类的方法的代码编写过程和调用方式(尽管它和类的事件非常相似),它的效果是,如果密码框中被输入了非字母,则系统振铃,并删除密码框中的原来的数据――在一定程度上保护密码。

类的方法可以不需要任何参数,这一点类似一个public的函数或者过程,它也是类中使用最广泛的。

在下一篇文章中我将讨论,如何使用类的属性、事件和方法进行综合编程。

(未完待续)

Top

2楼lihonggen0(李洪根,MSMVP,标准答案来了)回复于2003-04-0218:

11:

27得分0

关于VisualBasic6.0类开发(下)

  在VisualBasic6.0类的技术与应用(上)(以下简称上文)中,我们讨论了类的理论、类的创建和类的方法的编程实践,实际上,类之所以能够在软件工程中广泛应用,最主要的一点是它可以非常方便的封装许多编程需要的属性,这不仅使程序员在一定程度上克服控件(ocx)和链接库(dll)设计和调试中的复杂性,而且能够提高程序代码的简洁和高效性――本文将讨论完整的类的编程,包括方法、属性和基本事件。

  

(一)类的属性的特征和定义;

  类似于标准控件的属性,类的属性允许用户在指定的数据范围内进行赋值,这些值被类内的各个代码部分所共享。

属性的获得和传递需要经过PropertyLet和PropertyGet语句进行编程,当然,我们首先需要在类中进行全局或者模块级的相应变量定义。

  

(二)事件的属性和基本定义;

  和窗体的事件类似,类也有两个基本的事件,Class_Initialize(类加载时触发)和Class_Terminate(类卸载时触发),这两个事件都是private的。

实际上,我们完全可以忽略这两个事件――只要你记得完善类的方法和属性。

  类同样可以定义自己的事件,它和方法的程序编写格式类似,只不过需要WithEvents关键字进行参数声明,而且事件不能有任何命名参数或者可选参数,它也没有返回值。

  实际上,结构良好的方法和属性完全可以替代结构复杂的类的事件。

  (三)类的方法、事件和属性的编程实例;

  本程序的设计目的是,通过类控制窗体中文本框的内容的全部大写、小写和逆向排序转化。

  为了方便代码的书写和调用,我在类中引用了枚举的编程方法。

  以下代码在类Class1:

  OptionExplicit

   PrivateWithEventsmyTXTAsTextBox

   '方法的参数接口

   PublicEnumsTYLE

    Lcaseit'小写属性

    Lbigit'大写属性

    Nlogoit'逆向排序属性

   EndEnum

  '自定义枚举,用来实现属性的自动赋值

  PrivatemvarBiaozhiAssTYLE

  '实现枚举常量的连接

  PublicFunctiondONE()AsString'

  'DONE方法用来根据指定的枚举属性,对

  '窗体文本框进行相应的字符转化操作

  '并且返回转化后的字符串

  IfmvarBiaozhi=NlogoitThen

   dONE=StrReverse(myTXT)

   '逆向排序

  ElseIfmvarBiaozhi=LcaseitThen

   dONE=LCase(myTXT)

   '强制小写转化

  Else

   dONE=UCase(myTXT)

   '强制大写转化

  EndIf

  EndFunction

  'DONE方法结束

  PublicPropertyLetBiaozhi(ByValvDataAssTYLE)

   '获得属性的被赋的值

   mvarBiaozhi=vData

  EndProperty

  PublicPropertyGetBiaozhi()AssTYLE

   '传递属性值到类中

   SetBiaozhi=mvarBiaozhi

  EndProperty

  PublicSubAttach(itTEXTAsTextBox)

   '连接类的方法

   SetmyTXT=itTEXT

  EndSub

  PrivateSubClass_Initialize()

   '本事件在类倍加载时激活

   MsgBox"你好!

本程序向您展示使用类的方法、属性、事件进行编程的技术!

"

  EndSub

  PrivateSubClass_Terminate()

   '本事件在类被卸载时激活

   MsgBox"你好!

记得在Class_Terminate中填写对象撤销后的代码!

"

  EndSub

  '类的代码全部结束

  (四)窗体代码的引用编程;

  在窗体FORM1中添加文本控件TEXT1、下拉列表控件COMBO1、命令按钮COMMAND1(CAPTION="开始转化"),调整三个控件到适当位置。

  DimmyTAsNewClass1

  '类的引用

  PrivateSubForm_Load()

   Combo1.Clear

   Combo1.AddItem"字符串大写转化"

   Combo1.AddItem"字符串小写转化"

   Combo1.AddItem"字符串逆向排序"

   Combo1.ListIndex=0

   '在列表框中添加属性选项

  EndSub

  PrivateSubCommand1_Click()

   '当命令按钮按下时激活类

   myT.AttachText1

   '方法参数联接

   SelectCaseCombo1.ListIndex

    Case0

      myT.Biaozhi=Lbigit

    Case1

      myT.Biaozhi=Lcaseit

    Case2

      myT.Biaozhi=Nlogoit

   EndSelect

   '根据列表框的选择,给类的Biaozhi属性赋值

   '注意,在编程环境中,上述属性值自动添加

   Text1.Text=myT.dONE

   '返回排序结束后的字符串

  EndSub

  PrivateSubForm_Unload(CancelAsInteger)

   SetmyT=Nothing

  End

  '良好的编程习惯

  EndSub

怎么样,我们的代码看起来如此的简洁,这种感觉就象是在使用一个控件,不仅可以随心所欲的调用,而且方便的使用了vb的自动提示功能。

  (五)关于类的编程技术的总结;

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

  本文所示例的代码比较简单,却覆盖了关于模块编程技术的方方面面,希望初学者能够有所借鉴,也希望程序员能够共同探讨。

我们应该相信,无论多么复杂的高楼大厦都是由普普通通的方砖堆砌而成的,同样,无论所么复杂的软件工程都是由基本的程序语句所构成的,编程爱好者、程序员和分析员的区别只是在于,用同样的程序语句构建的程序的不同而已。

请教:

模块,类模块使用的不同之处,什么时候使用模块,什么时候使用类模块

∙对我有用[0]

∙丢个板砖[0]

∙引用

∙举报

∙管理

∙TOP

回复次数:

6

∙fvflove

∙(雪情)

∙等 级:

∙4

#1楼得分:

10回复于:

2008-07-1212:

54:

29

通俗一点:

要我用官方和描述我也不会:

VBcode

'********************'模块

'模块不般都放着全局变量及方法,经常调用.

'模块里面只能建立属性与方法,没有事件

'模块的使用,直接使用.不需要声明

'********************

 

'*********************类

'类里面一般都是指一个对象.(主要针对面向对象的编写)

'如桌子是一个对象:

'这时可以建立一个桌子的类

'里面有属性:

针对桌子

'里面有事件:

针对桌子如打开桌子的抽屉.这个过程就是一个事件

'里面有方法:

针对桌子

'长宽高形状所用材料等

'类的使用.需要引用

'如引用一个桌子类

dimnew桌子asnew桌子类

'事件的使用

privatesubnew桌子_打开抽屉(byvalindexaslong)'index返回打开的那个抽屉

'******这里面可以写入代码:

表示当你正在打开抽屉的时候怎么处理

endsub

'*********************

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2