




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计会凤-测绘与地理科学学院-
-辽宁工程技术大学-第一章VisualBasic6.0概述
课程安排授课:1-6周。第6周周三考试。上机:11-14周周六上午8-11:20
计算机中心二楼。成绩:授课(10分)+上机(10分)+卷面(80分)themegallery授课的内容VisualBasic6.0ArcGISVBA二次开发ArcObjects开发〔VB+AO〕themegallery第一局部VisualBasic1.1VisualBasic的开展历程和特点1.2VisualBasic6.0的帮助系统的使用1.3进入VisualBasic6.0世界1.4VisualBasic的编程根底
themegallery1.1开展历程和特点70年代后期第一代的Basic产品QuickBasic90年代初第一代VisualBasic产品VisualBasic3.0(多媒体,图形操作界面等) VisualBasic4.0〔自定义类、模块、数据库等〕 VisualBasic6.0〔部件、ActiveX等〕开展历程:VisualBasic已开展成当前基于Windows平台上最方便快捷的软件开发工具之一。无论是网络应用、多媒体技术还是当前流行的MIS系统的开发,VisualBasic都应付的游刃有余。themegalleryVisualBasic的特点:真正的面向对象编程;可视化的编程方法,以及向导的功能;数据访问特性允许对SQL和其他数据库的访问;通过ActiveX技术可使用其它应用程序提供的功能;
Internet能力强大;已完成的应用程序是真正的.exe文件。1.1开展历程和特点themegallery1.2帮助系统的使用
MSDNLibrary中包括了超过1.1GB的编程技巧信息,其中包括例如代码、开发人员知识库、Visaulstudio文档、技术文章、会议及技术讲座的论文等,总之MSDNLibrary是目前关于所有MicrosoftVisualStudio产品文档和其他编程信息的唯一资料。themegallery1.3进入VB系统themegallery进入VisualBasic6.0世界themegallery1.4VisualBasic6.0的编程根底themegallery内容:1.4.1VisualBasic6.0程序框架1.4.2VisualBasic6.0中的对象和类1.4.3VisualBasic6.0中的变量1.4.4VisualBasic6.0中的数组和集合1.4.5VisualBasic6.0过程和函数1.4.6VisualBasic6.0中的过程控制themegallery1.4.1程序框架在VisualBasic的工程中主要有四种工程类型,分别是:窗体、多文档窗体、模块和类模块。窗体是一种容器,其中可以包含许多控件及控件对应的事件。模块文件相当于用户的程序库。用户可以将常用的函数和过程在模块文件中定义为公用代码。类模块文件相当于用户的自定义对象库。在类模块文件中用户可以编写自定义的对象,及对象的属性、事件、使用方法。themegallery1.4.1程序框架themegallery1.4.2对象和类
对象是具有某些特性的具体的事物的抽象。而编程中对象是将数据和方法包装在一起,形成的一些实体或者说是一种数据结构。类是建立一个对象的模型,以同一个模型能建立相同的对象。类和对象的关系:类包含了有关对象的特征和行为的信息,它是对象的蓝图和框架。themegallery1.4.2对象和类
类的三大特性:封装,子类,继承性。封装性:隐藏不必要的复杂性,将对象的方法程序和属性代码包装在一起。子类:拥有其父类的全部功能,在此根底上,可添加其他控件或功能。继承性:是指在一个类上所做的改动反映到它的所有子类当中。themegallery1.4.2对象和类对象的属性:标识一个对象的所有特征,它实际上就是对象所属类的成员变量。如:Name、Appearance、
BackColor、ForeColor、Font、Text、Width等。对象的方法:指对象可以进行的操作,实际上是在空间对象的类中定义的一些成员函数。如:Clear、Drag、Move、
Refresh、Setfocus等。对象响应的事件:能够识别的外部变化。如:鼠标事件、键盘事件和焦点事件等。在Windows应用程序中,窗体和控件是最根本的用户接口的根本元素。在VisualBasic中这些元素称之为对象,每个对象都有自己的属属性.方法.并且可以响应外部事件。themegalleryText对象TextBox类themegalleryVB控件是具有自己的属性、事件和方法的对象,可以把属性看作对象的特征,事件看作对象的响应,方法看作对象的动作,它们构成了对象的三要素。1.4.2.1属性VB程序中的对象都有许多属性,用于描述和反映对象的特征,例如Name,Caption,Color,FontName,Visible等。有两种方法设置对象的属性值:
(1)设计阶段在属性窗口直接设置
(2)在程序代码中赋值:对象.属性=属性值例如Command1.Caption=“确定”themegallery1.4.2.2方法面向对象的程序设计语言,为程序设计人员提供了一些特殊的过程和函数〔称为方法〕。在VB中已将一些通用的过程和函数编写好并封装起来,作为方法供用户直接调用,这给用户的编程带来了很大的方便。[对象.]方法[参数名表]例如:Form1.Print“欢送使用VisualBasic6.0!”假设省略其中的对象,那么表示为当前对象,一般指窗体。themegallery
1.4.2.3事件、事件过程和事件驱动对于对象而言,事件就是发生在该对象上的事情(或消息),例如对命令按钮的Click、DblClick、GetFocus、KeyPress等。当在对象上发生事件后,应用程序就要调用相应代码来处理(响应)这个事件,称为事件过程。Sub对象名_事件([参数列表])…事件过程代码EndSub
SubCommand1_Click()Command1.FontSize=20EndSub与传统的面向过程的应用程序不同,事件驱动程序设计使系统按事件发生顺序执行相应代码,因此程序每次运行的路径可能都是不同的。事件驱动机制themegallery1.4.3变量变量是用来存储数据,并且可以用来在函数和过程中传递参数。1.4.3.1命名规那么:一个变量名的长度不能超过255个字符;变量名的第一个子符必须是字母A到Z,第一个字母可以是大写.也可以是小写。其余的字符可以是由字母,数字和下划线组成.VB中的保存字不能用作变量名,保存字包括VB中的属性、事件、方法、过程、函数等系统内部的标示符。、#8a、8ab?VB中部区分大小写?themegallery声明变量: 显式地声明变量:Dimvariablename[Astype] DimStudent_NameasString DimStudent_NameasString*20 隐式地声明变量: FunctionSum〔Sum1,Sum2,Sum3)TempVal=Sum1*0.1TempVal=Sum1*0.3+TempValSum1=TempValEndFunction 变量未经定义使用时,发出错误警告. OptionExplicit或Tools->选项->编辑器-〉要求变量声明
1.4.3.2声明变量themegallery变量的作用范围:变量对于程序的可识别程度。1.4.3.3变量作用范围声明变量的说明符:
Public:公用变量,作用范围整个模块;
Private:当前过程;~Dim静态变量:变量值一直存在。例如:StaticClick_NemberAsIntergre同名变量:使用时前加模块名或窗体名。 如:Form.number和Moudle1.numberthemegallery1.4.3.4变量类型themegallery1.4.3.4变量类型变量的类型: 数值型 字符型 日期型 逻辑型 变体型 对象型themegallery整型〔Integer〕:占两个字节,-32768~32767长整型〔Long〕:占四个字节,-2147483648~2147483647单精度型〔Single〕占四个字节。双精度型〔Double〕占八个字节。货币型〔Currency〕占八个字节。字节型〔Byte〕:超过255或者一个负值,那么在运行会出现一个溢出错误。多用于AND、OR、NOT等布尔运算中。数值型变量:用来存储数值。themegallery字符串变量:通常用来保存文本,包括变长字符串变量(2G)与定长字符串变量(16K)。变长:
DimStrTextasString定长:
DimStrTextasString*1000themegallery日期型变量可以表示日期范围从100年1月1日到9999年12月31日,而时间可以从0:00:00到23:59:59.定义方法:
DimDataTestasDate DataTest=“06/23/97” DataTest=“13:23:03AM” DataTest=“01/01/9713:23:03AM” DataTest=#07/03/98# DataTest=#3:23:09PM# DataTest=#01/01/973:23:09PM#themegallery逻辑型变量也称为布尔型变量,其取值范围只能是True或False。其可使用逻辑运算符AND、OR和NOT等进行运算。DimConditionAsBoolean Condition=True Condition=FalseDimCondition1,Condition2AsBoolean Condition1=NotCondition1 Condition2=Condition1themegallery变体型〔Variant〕变量是最灵活的一种变量,适用于各种数据类型。声明变体型变量,可以使用默认声明方式和直接声明。DimVarlDimVarlAsVariantVal1=5Val2=14.6Val1=val1+val2themegallery对象变量DimObj1AsCommandButtonDimObj2AsTextBoxDimObj3AsObjectSetObj1=Command1SetObj2=TextBox1SetObj3=Command1Obj1.Caption=“newcaption”Obj2.FontBold=Truethemegallery其他特殊数据Empty不同于空字符串〔“”〕,用IsEmpty函数可以判断变量是否进行了初始化。 IfIsEmpty(var)Then MsgBox”变量还没有初始化” EndIf Empty适用于数字,字符串和日期变量。 如:Var=Emptythemegallery
Null在数据库中常表示字段中没有数据或者对象变量没有赋值,Null不同于Empty值,一般数据类型中不会有Null值,除非用户强制定义。如:Val=NullIsNull函数可以检查数据库中的某个字段中是否有有效的数值。如:IfNotIsNull(varField)Then (processvariablevarfield) EndIf其他特殊数据themegallery用户自定义数据类型在VisualBasic中构造数据类型可以用Type语句。例如:PrivateTypestudentrecord student_IDAsInteger student_NameAsString studeng_SexAsBoolean……………..EndType使用
Dimstudent1Asstudentrecord student1.student_ID=1 …themegallery
变量类型转换通常是由字母C加上需要转换的类型,如将一个变量转换为字符串变量,就可以使用函数CStr(Expression)。检查数据类型通常使用VarType和TypeName函数。VarType函数可以返回一个整数;TypeName函数返回变量的数据类型。除此之外,还可用themegallery常量定义常量方法:[Public|Private]Constconstantname[AsType]=expression例如:PublicConstMaxPlanetsAsInteger=9PublicConstVersion=“07.10.A”themegallery1.4.3.5运算符
1.算术运算符例:5+10mod10\9/3+2^2结果:10themegallery2.字符串运算符&和+〔字符串连接〕"123"+"456"结果"123456""123"&"456"结果"123456"在字符串变量后用“&”时应加一空格,因为&→长整型定义符。+两边必须是字符串,否那么执行算术加操作。假设+两边一个为非数字字符型,另一个为数值型,那么出错。&无论两边为数值或字符型,均转换成字符型并连接。
例如: "abcdef"&12345'结果为"abcdef12345" "abcdef"+12345'出错 "123"&456'结果为"123456" “123”+456'结果为579注意:"123"+True'结果为122True转换为数值-1,False转换为数值0themegallery3.关系运算符将两个操作数进行大小比较,假设关系成立那么返回True,否那么返回False。字符串比较,那么按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止。例:"ABCDE">"ABRA"结果为Falsethemegallery4.逻辑运算符
将操作数进行逻辑运算,结果是逻辑值True或False。条件表达式1And条件表达式2条件表达式均为T结果为T条件表达式1Or条件表达式2条件表达式有一个T结果为Tthemegallery1.4.4数组和集合数据是存储一系列类型一致的变量,并且可以用相同的名字引用这些变量,引用时用索引来识别它们。除Variant类型。固定大小的数组声明:[DimPublic|Private]Arrayname([lowerTo]upper)Astype如:DimCounters(14)AsIntegerDimCounters(1To15)AsInteger多维数组的声明方法与一维类似。如:StaticMatricA(9,9)AsDoubleStaticMatricA(1To10,1To10〕AsDoubleDimMultiArray(3,1To10,1To15)AsStringthemegallery1.4.4数组和集合动态数组例如:DimDynArray()AsInteger
在使用时,用ReDim语句分配实际的元素个数。如:ReDimDynArray(4to20)themegallery1.4.4数组和集合集合的使用实例DimstudentAscollectionSetstudent=newcollectionStudent.Add“Z34”,”张三”Student.Add“Z31”,”李四”Student.Add“Z32”,”王五”Student.Remove“张三”Student_name=InputBox(“请输入查询学生姓名:”)Class_name=Student(student_name)MsgBox“所输入学生”+Student_name+”在”+Class_name+”班”themegallery1.4.5过程和函数过程定义:一个较大的程序一般应分为假设干个程序模块,每一个模块用来实现一个特定的功能,这些模块就叫过程。使用过程编程的优点过程一旦编好并调试成功,就可以调用任何次,而不需重新编写。运用单独分开的过程可使程序模块化,并使代码的组织结构适应程序的功能结构。由于这些过程是完全自包含的,因而在过程中说明的变量都称为局部变量,不会被外面的过程所改变。VisualBasic中过程的类型Sub过程:只完成一定的操作和功能,不产生返回值。Function函数:除了完成一定的功能之外,还产生返回值。themegallery1.4.5.1过程和函数定义子过程:[Private|Public|Friend|static]SubName[(arglist)][statements][Exitsub][statements]Endsub使用[Call]Name[〔arglist〕]定义函数[Private|Public|Static]Functionprocedurename(arguments)[Astype] statementsEndFunction使用:T1=procedurename(arguments)或用Call(无意义)themegallery1.4.5过程和函数—应用实例FunctionAdd3(Num1asInteger,Num2asInteger,OptionalNum3asInteger) IfIsMissing(Num2〕Then ifIsMissing(Num3〕Then Multiple3=Num1 else Multiple3=Num1+Num3 endif else ifIsMissing(Num3)Then Multiple3=Num1+Num2 else Multiple3=Num1+Num2+Num3 endif endifEndFunction
themegalleryTool菜单—〉添加过程themegallery1.4.5.2常用内部函数数学函数三角函数中的自变量N以弧度表示。Rnd函数返回[0~1)之间的双精度随机数。要每次运行时产生不同序列的随机数,那么执行Randomize语句。例产生1-100的随机数:Int(Rnd*100)+1themegallery2.转换函数
Val()函数将数字字符串转换为数值类型,假设出现非数字那么停止。实例themegallery1.4.6过程控制过程控制可以分为三个主要局部:转支〔Branching〕:一种跳转机制,从程序的一个代码段跳到另一个代码段。循环〔Iteration〕:在程序中重复执行一套指令,并且到达一定次数或者条件停止。条件执行〔Conditionexecution〕:在程序中,当某些条件为真时,允许执行一系列指令,如果条件为假,那么执行另外的指令。themegallery1.4.6过程控制—转支VB中有两种转支语句:Goto和Gosub。应用实例:SubGotoStatementDemo() OnErrorGotoLastLine DimNumber,Mystring Number=1 Mystring=“Numberequal2” ifNumber=1ThenGoToLine1elseGoSubLastLineLine1: Mystring=“Numberequal1”LastLine: Debug.printMystringEndSubthemegallery1.4.6过程控制—条件结构VB中提供了三种条件判断结构:If…ThenIf…Then…ElseSelectCasethemegalleryIfconditionThenstatementsEndIfIfanyData<NowThenanyData=Now或IfanyData<NowThenanyData=NowEndIfthemegallerythemegalleryIfscore<60Then result=“不及格”ElseIfscore<70Then result=“及格”ElseIfscore<90Then result=“良好”Else result=“优秀”EndIfthemegallerythemegalleryVB支持四种主要的循环结构:For…NextForEach…NextDo…LoopWhile…wend1.4.6过程控制—循环结构themegalleryForcounter=starToend[Stepincrement] statementsNextcounterDimtotal,endvalueAsIntegerEndvalue=inputBox(“pleaseinputanumber”) total=0 forI=0Toendvalue total=total+1 nextthemegallery
ForEach….Next循环与For…Next循环类似,但它只是对数组或对象集合中的每一个元素进行循环,而不是重复一定的次数。如果不知道一个集合有多少元素,ForEach…Next循环非常有用。ForEach…Next循环的语法如下:ForEachelementIngroup statementsNextelementthemegalleryDimmyarray(12)AsStringForEachelementInmyarray()
i=i+1myarray(i)="123"NextelementMsgboxmyarray(8)themegallerythemegallery在VisualBasic中,Do…Loop语句是最通用因而也是最有用的一种循环结构,包含在Do…Loop之间的语句,只要某个条件存在,或者直到某个条件为真时,就会重复执行循环体,同时也允许在循环开始或结束时说明是否要检查条件。这样Do…Loop语句就演化出了四种形式:DoWhile…Loop,DoUntil…Loop,Do….Loopwhile,Do…LoopUntilthemegalleryDototal=total+pnumpn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届中国燃气校园招聘正式启动笔试参考题库附带答案详解
- 保证函和保证合同范本
- 加工产品企业合同范本
- 养殖买卖合同范例
- 农村购墓地合同范本
- 介绍股合同范本
- 劳动聘用合同范本
- 亲兄弟合伙合同范本
- pe管材购销合同范本
- 亏损分担合同范例
- 部编版六年级下册语文古诗三首《石灰吟》(课件)
- 2024年大学生心理健康知识考试题库300题(含答案)
- 客服专员+云客服安全知识双11阿里淘宝云客服在线+语音+专项云客服考试试题及答案
- 《欣赏 中华人民共和国国歌(简谱、五线谱)》课件
- 羽毛球教案18课时
- 初三化学一轮复习计划
- 链家新人成长手册10
- 成人重症患者人工气道湿化护理专家共识 解读
- 关于进一步加强路基路面施工质量的通知
- 新版苏教版六年级数学上册全册解析
- AQ/T 2080-2023 金属非金属地下矿山在用人员定位系统安全检测检验规范(正式版)
评论
0/150
提交评论