《VisualBasic程序设计教程ppt课件(完整版).ppt》由会员分享,可在线阅读,更多相关《VisualBasic程序设计教程ppt课件(完整版).ppt(302页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Visual Basic程序设计教程 课件2011版参考文献Visual Basic程序设计教程 课件2011版博学之,审问之,慎思之,明辨之,笃行之。礼记中庸博学之,审问之,慎思之,明辨之,笃行之。礼记中庸目录主要参考文献 2罗朝盛,罗朝盛,Visual Basic 6.0程序设计教程(第二版),人民邮电出版社(程序设计教程(第二版),人民邮电出版社(2008.6)3陈佳丽,陈佳丽,Visual Basic程序设计基础与实训教程,清华大学出版社(程序设计基础与实训教程,清华大学出版社(2005.7)5刘志妩刘志妩等,基于等,基于VB和和SQL的数据库编程技术,清华大学出版社(的数据库编程技术
2、,清华大学出版社(2008.4)1龚沛曾等,龚沛曾等,Visual Basic程序设计教程(第程序设计教程(第3版),高教出版社(版),高教出版社(2007.3)4徐安东等,徐安东等,Visual Basic数据库应用开发教程,清华大学出版社(数据库应用开发教程,清华大学出版社(2006.8)6刘炳文等,全国计算机等级考试二级教程刘炳文等,全国计算机等级考试二级教程-Visual Basic语言程序设计(语言程序设计(2010版),版),高等教育出版社(高等教育出版社(2009.7)7NCRE研究组,全国计算机等级考试考点解析、例题精解与实战练习研究组,全国计算机等级考试考点解析、例题精解与实
3、战练习-二级语二级语言言Visual Basic程序设计,高等教育出版社(程序设计,高等教育出版社(2008.3)8NCRE研究组,全国计算机等级考试考点解析、例题精解与实战练习研究组,全国计算机等级考试考点解析、例题精解与实战练习-二级公二级公共基础知识共基础知识,高等教育出版社(,高等教育出版社(2008.3)目 录 2 程序设计入门3 数据类型、常量与变量4 运算符与表达式5 控制结构6 过程8 内部控件10 绘图11 多重窗体与多文档窗体7 数组与自定义数据类型12 文件操作1 引言9 内部函数13 数据库操作第1章 引言一、计算机编程语言的分类 当今,程序设计语言的种类繁多,其分类方
4、法也有多种。根据程序设计语言的发展或按其与硬件的接近程度,通常可分为机器语言、汇编语言和高级语言三种类型,如下图所示。计算机语言机器语言(第一代语言)汇编语言(第二代语言)高级语言 Fortran、Basic、Cobol、Pascal、C等(称为第三代语言)高级语言 JAVA、C+、VB、.NET、ASP、SQL、PHP、XML、FoxBASE、FoxPro、Oracle、Forth等(也称为第四代语言)Lisp、Prolog(人工智能语言,人们也常称为第五代语言)。一般来说,人工智能语言应具备如下特点:具有符号处理能力(即非数值处理能力);适合于结构化程序设计,编程容易;具有递归功能和回溯功
5、能;具有人机交互能力;适合于推理;既有把过程与说明式数据结构混合起来的能力,又有辨别数据、确定控制的模式匹配机制。面向对象的语言(Object-Oriented Language):上个世纪80年代中期提出的新思想,是一种以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承、封闭和多态等成分,如Visual Basic、C+、Java、C#、Object Pascal(Delphi)等。“面向过程”是一种致力于用计算机能够理解的逻辑来描述需要解决的问题和解决问题的具体方法和步骤。编程时不仅要说明做什么,还要非常详细地告诉
6、计算机如何做,程序需要详细描述解题的过程和细节。“面向对象”是一种以事物为中心的编程思想。比如以公共汽车而言。“面向过程”就是汽车启动是一个事件,汽车到站是另一个事件。在编程序的时候我们关心的是某一个事件。而不是汽车本身。“面向对象”需要建立一个汽车的实体,由实体引发事件。我们关心的是由汽车抽象成的对象,这个对象有自己的属性,象轮胎,颜色等;有自己的方法,象启动,行驶等.方法也就是汽车的行为.而不是汽车的每个事件。面向过程的语言(高级语言)。高级语言,其语法和结构更类似普通英文,且由于远离对硬件的直接操作,使得一般人经过学习之后都可以编程,如:Fortran、C、Basic、Pascal等。机
7、器语言:计算机所能识别的语言,即由0和1构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。汇编语言(Assembly Language):也是面向机器的程序设计语言,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言(或称为符号语言)。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。汇编程序把汇编语言翻译成机器语言的过程称为汇编。二、程序的执行方式和运行环境解释型。应用程序源程序必须在编程环境的支持下才能运
8、行。执行方式类似于“同声翻译”,一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。编译型。编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,即生成直接运行于操作系统之上的可执行文件.exe。使用比较方便、效率较高、保密性好。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(.OBJ)才能执行。例如VB、VC、VFP、Delphi等。三、面向对象的基本概念“对象”与“类
9、”的概念任何事物都可以被看作“对象”(Object),而“类”(Class)则是同种对象的总称。例如:“人”是一个类,每个具体的人是一个对象。在程序设计中,类和对象是事先定义好的。例如:“按钮”是一个类,每个具体的按钮是一个对象。属性名称=XX 材料=XX直径=XX颜色=XX厚度=XX方法飘浮上升下降膨胀缩小爆炸事件被释放被扎被打气被放气对象:一只气球面向对象的PME模型任何对象都可以从以下三个方面进行描述:“属性”(Property):对象所具有的特性。“方法”(Method):对象可能执行的操作或行为。“事件”(Event):对象可以识别并作出反应的外部刺激。以下是两个生活事例。一个是一只
10、气球,第二个是人。属性姓名=张三性别=男身高=1.7米国藉=中国年龄=19岁 方法跑步学习 笑 唱歌 事件遇到高兴的事情 下课了.对象:一个人不同对象之间的关系 一个“系统”是由多个相互联系的对象组成(对象的数目和种类由系统的复杂程度决定)。同一系统中的对象之间通过相互作用(方法与事件)来改变各自的属性,使整个系统保持运动和发展。对于同一个对象,它的属性、方法和事件之间存在极为密切的关系:事件的发生方法的执行属性的改变。Visual Basic的优点是语言简单易学,引入了“面向对象”和“事件驱动”等先进思想,支持ActiveX控件、VBS和VBA,对网络和数据库的编程有良好的支持,拥有完全的中
11、文界面和帮助系统。缺点是可移植性不好,只适用于32位Windows。本课程使用:VB 6中文企业版SP6WinXPMSDN帮助Visual Basic 的优点和缺点四、Visual Basic 简介Visual Basic 发展史VB 1.0 VB 3.0 VB 4.0 VB 5.0 VB 6.0 VB.NET 1.0 VB.NET 1.120世纪90年代初 1997年 1998年 2001年 2003年中文学习版中文专业版中文企业版VB 20052005年VB 20072007年Visual Basic 6的安装和启动方法(1)“开始”按钮(2)“开始”菜单(3)“程序”子菜单(4)“VB6
12、”子菜单(5)此菜单项启动VB集成环境返回目录VB 6的安装方法,参见课堂安装演示操作。VB 6的启动方法,如下图所示。第2章 程序设计入门工具箱工程窗口属性窗口窗体布局窗口窗体对象对象窗口一、Visual Basic 6的集成开发环境代码窗口立即窗口本地窗口主菜单主工具栏PictureBox 控件TextBox 控件CommandButton 控件OptionButton 控件ListBox 控件VScrollBar 控件DriveListBox 控件FileListBox 控件Line 控件Data 控件Image 控件Shape 控件DirListBox 控件Timer 控件HScrol
13、lBar 控件ComboBox 控件CheckBox 控件Frame 控件Label 控件二、Visual Basic 工具箱窗口三、Visual Basic 集成环境的“工程”窗口(右上)和“属性”窗口(下)四、Visual Basic 集成环境的“对象”窗口向窗体上添加控件的方法单击图标,再拖动;双击图标;Ctrl键单击图标,再拖动;复制粘贴。选择控件的方法单击可选择一个控件按住Ctrl键,单击要选择的多个控件。按住Shift键,单击要选择的多个控件。在窗体上拖动鼠标,画出一个包含要选择控件的矩形。改变控件的大小和位置 在窗体的控件上单击,可使该控件成为“活动”的,“活动”控件的四周有8个
14、小方块。改变控件大小的方法如下:将鼠标指针对准控件的小方块,出现双向箭头,拖动鼠标即可改变变控件的高度和宽度;按下Shift+“方向箭头”键也可改变控件的大小。改变控件的位置如下:将鼠标指针指向活动的控件,拖动控件到所需位置。按下Ctrl+“方向箭头”键也可改变控件的位置。此外还可修改控件的Left、Top、Width、Height改变控件的大小和位置五、程序的设计、运行和中断状态(1)设计状态设置对象、编辑代码。(2)运行状态解释型地运行程序。(3)中断状态调试程序,进行排错。可以在三种状态之间进行切换。六、窗体(Form)对象 窗体是窗口的框架,是VB程序最基本的对象,是各类控件的容器。V
15、B开发环境为每个窗体模块自动地创建了一个窗体对象。【例题】如下图左所示,设计一个应用程序,以实现简单的加法运算的功能。Name:对象名。用于标识对象的字符串。对象名必须满足以下条件:必须以字母开头 可以包含字母、数字和下划线,不能包括标点和空格 不能多于40个字符 不能与其它公共对象重名,可以与关键字相同,但应避免 在同一模块下,不能重名 建议为对象名加上类型前缀Caption:显示在窗体标题栏上的文字。BorderStyle:边框类型。决定窗体是否可缩放、标题栏是正常还是窄、是否在任务栏上出现等。该属性对MinButton、MaxButton属性的设置有影响。ControlBox:窗体是否有
16、图标、系统菜单和最大化、最小化与关闭按钮。Icon:窗体图标。与一图标文件相联系。如为“无”则使用默认图标。MaxButton与MinButton:是否显示最大化与最小化按钮,值为True或False。只有二者均为False时才不显示,否则设为False者只以无效显示。Visible:窗体是否可见,True或 False。七、Form对象的常用属性Left、Top属性:窗体相对于屏幕的位置。坐标值的默认单位是缇(twip),1缇等于1/567厘米。Width、Height属性:窗体的宽度与高度。默认单位也是缇。Moveable属性:True/False,False时窗体不能被鼠标拖动。Enab
17、led属性:True/False,False时窗体及上面的控件不响应用户的操作。WindowState属性:取值为0、1、2,决定窗体还原、最小化、最大化状态。Picture属性:指定一个图片文件,用为窗体的背景图。对象的每个属性反映了该对象某个方面的特性。同一个对象的不同属性之间可能相互影响。程序设计阶段可以在属性窗口中对属性的值进行设置,(有些属性不能在设计时设置;有些属性的设置只有在运行时才反映出来)。在程序进行过程中,程序代码可以读取或重新设置属性的值。有一些属性的值只能在设计阶段设置,程序运行过程中这些属性是只读的。在程序中对对象的属性进行存取要以如下格式:对象名.属性名如:frmF
18、irst.Height=1200 表示窗体frmFirst的高度设置为1200单位(缇)八、属性的分类九、运行时对象属性的读写方法在设计和运行状态下都可设置的属性只能在设计时设置,不能在运行时设置的属性。如对象的Name属性。只能在运行时设置,不能在设计时设置的属性。在设计和运行状态下都可设置,但只有在运行时才能生成的属性。如Visible属性。访问对象属性的格式:对象名.属性名如:Form1.Caption通过此格式可以读取属性的值,也可以设置属性的值。如:Form1.Caption 你好!Visual Basic 或:x=Form1.Left 此外,窗体的属性还有:BackColor、Fo
19、reClolor、Font、FontSize、FontBold、FontItalic、FontUnderline、AutoRedraw等。Move方法,语法为:对象名.Move Left,Top,Width,Height 该方法将 object 对象移动到以 left,top 定义的新位置。同时可以改变该对象的大小(以 width,height为新的宽与高)。其中 left 参数必须给定。但是,要给定任何其它的参数,必须先给定出现在语法中该参数前面的全部参数。例:设frmFirst为一窗体对象名。frmFirst.Move 1000,1000,1200,2000 既移动位置,又改变大小 frm
20、First.Move 1000,1000只移动 frmFirst.Move 1000只左右移动 frmFirst.Move 1000,1200错误,缺少参数Move方法同时改变了Left,Top,Width与Height属性的值。效果与分别设置这些属性的值等效。Hide方法,语法为:对象名.Hide 此方法将object对象隐藏,并将其Visible属性设置为 False。窗体被隐藏之后,就不能响应用户的操作。该方法无参数。某些方法的执行改变一些属性的值,有些方法的执行结果可能受一些属性的影响。方法的执行可能等效于对一些属性的修改。十、Form对象的常用方法Show方法:使窗体从隐藏状态变为显
21、示状态。对象名.Show Show方法有两个参考,将在第11章讲解。Print方法:在窗体表面上显示指的内容。对象名.Print“,|;”分隔的输出项 Print支持以逗号或分号分隔的多个输出项的值,每个输出项可以是属性、变量、常量或表达式。其中:分中(;)光标定位在上一个显示的字符后,而逗号(,)光标定位在下一个打印区(每隔14列)的开始位置处。默认情况下,每调用一次Print方法将在窗体上显示一行内容。Print方法的详细用法见第10章。Cls方法:该方法用来清除窗体上显示的正文和和绘制的图形。Cls方法的一般格式如下:窗体名.|Cls十一、窗体Form对象的常用事件 事件是对象能够识别的
22、外部刺激并做出反映,该刺激既可能来自于用户,也可能来自于操作系统。常用的窗体事件有:Load、Activate、Click、DblClick、Resize、UnLoad等。Load事件:窗体在加载显示时此发此事件,常用来对窗体或控件进行初始化。Activate事件:在Load事件发生后,系统自动触发并执行该事件。Load事件发生时窗体是不活动的,Activate事件发生时窗体已是活动的。在不活动的窗体上不能使用Print方法,在活动的窗体上能使用Print方法。Click事件:当用户在窗体上(除标题栏和边框)单击鼠标左键或右键时引发。Click事件过程:当对象接收到Click事件时所执行的代码
23、。窗体的Click事件语法:Private Sub Form_Click()(语句组)End Sub用户可以把想让对象对该事件所做的反应以VB语句的形式写在事件过程中。在一个对象的事件过程中,可以设置其自身的或其它的对象的属性、执行其自身的或其它的对象的方法、甚至可以调用自身的或其它的对象的事件过程。DblClick事件:DblClick事件是当程序运行后,用鼠标双击窗体时触发的事件。DblClick事件的形式如下:Private Sub Form_DblClick()(语句组)End SubDeactivate(活动、非活动)事件 取消活动窗体激活另一个窗体时该窗体发生Deactivate事
24、件。Paint(绘画)事件 重新绘制一个窗体时发生Paint事件。当移动、放大、缩小该对象或一个覆盖该对象的窗口移动后,该窗体暴露出来,就会发生此事件。Resize事件:当窗体因任何原因大小发生变化时(或第一次显示窗体时)引发引事件。在拖动边框窗体改变大小时,会连续引发多个Resize事件。例如加入下面的代码,会在改变窗体大小的同时使窗体居中显示:Private Sub Form_Resize()Form1.Left=(Screen.Width-Form1.Width)/2 Form1.Top=(Screen.Height-Form1.Height)/2 End SubUnload事件:Unl
25、oad事件是在窗体被卸载时触发的事件。该事件过程执行后,窗体从内存工作区被清除,用户在此可进行相关数据的保存。Unload事件的形式如下:Private Sub Form_Unload(Cancel As Integer)(语句组)End Sub在关闭窗体时,如果Cancel 是一个非0值(True),则禁止关闭窗体;Cancel值是0时(False),则可进行卸载窗体。十二、“代码”窗口的使用打开【例2.2】改变窗体大小。打开【例2.1】单击和双击事件的使用。Left、Top:命令按钮在窗体上的位置。坐标值的默认单位是缇(1p/20)。Width、Height:按钮的宽度与高度。默认单位也是
26、缇。Caption:显示在按钮表面上的文字。可使用“&”字符与其后的字母组成快捷键。Visible:True 或False。该按钮是否可见。Enabled:True 或False。False时按钮变灰,不能被点击。Name:对象名。要符合VB对对象名的要求。建议为按钮对象名加上“cmd”前缀。Value:将该属性设为True可以触发按钮对象的Click事件。只能在运行时设置。Default:若该属性为True,则按钮对象为默认按钮。不管焦点在哪个控件上,用户按回车键,均触发按钮的Click事件。默认按钮有较粗的边框。一个窗体上只能有一个按钮的Default属性为True。Cancel:若该属性
27、为True,则按钮对象为默认的“取消”按钮。不管焦点在哪个控件上,用户按“ESC”键,均触发按钮的Click事件。常用属性TopTopLeftLeftWidth十三、命令按钮(CommandButton)Picture:按钮装入图片文件(.bmp或.ico),但Style必须为1.Move方法,此方法在窗体上移动按钮对象,使用语法格式如下:object.Move Left,Top,Width,HeightClick事件:当用户在按钮表面上单击鼠标左键产生Click事件。另外下列方法也能触发按钮的Click事件:用Tab键把焦点移动到该按钮上,然后按空格或回车键。按快捷键(Alt+具有下划线的字
28、母)如为窗体的缺省按钮,按回车键。如为窗体的默认“取消”按钮,按ESC键。在运行阶段设置属性:object.Value=TrueClick事件过程:当对象接收到Click事件时所执行的代码。按钮的Click事件语法:Private Sub object_Click()(语句组)End Sub命令按钮对象不支持鼠标双击事件,即无DblClick事件。双击操作被理解为两个单击操作。窗体与控件事件过程名的区别:对于窗体对象,其事件过程名为“Form_事件名”,与其对象名无关。对于控件对象,其事件过程名为“对象名_事件名”,用到了其对象。命令按钮对象的常用方法和事件打开【例2.3】使用按钮移动窗体。N
29、ame、Left、Top、Width、Height、Visible、Enabled 属性与命令按钮的意义相同。Text:框中的文本内容(默认属性)。MaxLength:限制文本框中的文本的最大长度(字符个数)。如果为0,则长度只受系统限制。MultiLine:为True时,文本框中可以显示多行内容,最多可包含32K个字符。False时,忽略换行符,最多可包含2048。ScrollBars:设置文本框的滚动条,有03共4个取值。只有MultiLine属性为True时,此属性才有意义。SelLength、SelStart和 SelText:分别为当前选定文本的长度、选定文本的起始位置(以0为起点)
30、与选定文本的内容。这三属性只在运行时使用。Locked:为True时,框内的内容不能被编辑(与将Enabled设置为False不同)。Alignment:文本框中文本相对与文本框的对齐方式。须将MultiLine设为True。PasswordChar:设置口令字符。须将MultiLine设为False。十四、文本框(TextBox)文本框的常用属性文本框是一个文本编辑区域,用户可以在该区域输入、编辑、修改和显示正文内容。Move方法:用法与窗体相同。SetFocus方法:该方法用于将光标移动到指定的文本框中。同样地,文本框支持Click、DblClick等常见事件。Change事件:当文本框的
31、内容发生改变时引发Change事件。Private Sub object_Change()(语句)End Sub文本框(TextBox)对象的事件与方法打开【例2.4】用于文本原样输出,如图所示。KeyPress事件:当用户按下并且释放键盘上的一个键时,所触发的事件,此事件会返回一个键ASCII值。如:Private Sub Text1_KeyPress(KeyAscii As Integer)Print KeyAscii End SubGotFocus事件、LostFocus事件:GotFocus事件表示一个对象获得焦点时触发。反之,LostFocus事件表示丢失焦点时所触发的事件,常用用于
32、对数据更新进行验证和确认。Alignment、Left、Top、Width、Height、Visible、Enabled 属性与文本框、命令按钮的意义相同。Name:对象名。AutoSize和WordWrap:这两个属性决定标签大小是否随显示的文本内容变化,以及变化时是垂直还是水平扩展。Caption:标签上显示的文字内容。可以使用“&”来为标签创建快捷键。标签本身并不能拥有输入焦点。当用户按快捷键时,会把焦点传递给Tab键次序中下一个可拥有焦点的控件。与文本框的Text属性不同,标签控件Caption属性的值不能由用户直接修改,但可以由程序修改。BorderStyle:01。当此属性为1时,
33、标签有边框。默认值为0,即无边框。标签可以用来对其它没有标题的控件(如文本框)进行说明,也可用来显示一些程序运行过程中的提示信息。标签对象显示的内容不能由用户直接修改,但由程序代码修改。常用属性十五、标签(Label)对象 标签控件支持:Move方法、Click事件、DblClick事件与Change事件。其中:当标签Caption属性值变化时,引发Change事件。因为标签控件主要的作用是描述其他控件,显示的是形态文本。一般情况下,不必编写其事件过程。Label对象的常用事件和方法打开【例2.5】显示作者姓名和年龄,如右下图所示。打开【例2.6】综合示例,如左图所示。字母的大小写问题,关键字
34、 语句:程序以语句为单位,一般情况下,一条语句占一行。续行:如果语句太长,可以分为连续的多行书写,这时,未完的行要以空格与下划线(称为“续行符”)结尾。注意分行时要避开关键字、对象名、过程名。如:lblMyFirst.Caption=lblMyFirst.Caption _+12313 一行中写多条语句:要在一行中写多条语句,可在多条语句之间插入冒号作为分隔。如:txtFirst.Text=“Hello”:frmOpen.Top=1000:frmOpen.Left=1200 注释:可在程序中加入以单引号开头的解释性的文字,单引号为“注释符”,这些文字为注释内容。注释内容在程序执行时被忽略。注意
35、:在续行符后不能写注释。如:这是2009年2月16日编写的,整行注释也可使用Rem txtMy.Text=您好!在文本框中向用户问好 行号与标号 英文符号与中文符号 使用中文时要使用半角标点符号。程序行的缩进,与源程序的美观十六、Visual Basic 语法规则十七、Visual Basic开发程序的主要步骤进入VB集成开发环境添加对象,编写代码保存打开源程序*.vbp、*.frm*.frx、*.bas文件解释性试运行编译可执行文件*.exe文件完成未完成或出错预备工作建立界面设置属性编写代码、进行调试编译十八、工程中的模块与文件 为编制一个应用程序而创建的所有源文件统称为一个“工程”(Pr
36、oject)。一个工程有一个工程文件(vbp,vbw),另外还有多个模块文件。窗体模块窗体模块包含窗体及其控件的定义、属性设置,以及代码窗口中的程序行。窗体文件的扩展名为.frm,如果设置了对象的ICO或Picture属性,会生成同名的.frx文件。标准模块 标准模块包含数据类型、常数、变量、外部过程和公共过程的公共的或模块级的定义。标准模块文件以.bas为文件扩展名。还可能用到其他类型的模块。保存工程时先提示保存各模块文件,最后提示保存工程文件。打开工程时,直接打开工程文件即可。应该将一个工程中的所有文件保存在同一个文件夹中,便于管理。不能在VB集成环境之外移动工程中的模块文件或对其进行重命
37、名。这样会导致工程无法打开。十九、保存和打开工程二十、生成可执行文件通过“文件”菜单中的“生成”命令可执行文件.exe。可指定可执行文件名和保存位置。可执行文件可脱离源程序与VB环境单独运行。可执行文件需要一些中间文件的支持才能运行。显示作者姓名和年龄,如下图3所示。综合示例,如图4所示。用于文本原样输出,如图3中所示。验证课程例子,如图1所示。设计一个窗体,窗体上有“放大”、“加粗”、“下画线”、“还原”和“移动”5个命令按钮和一个显示“VB程序设计”的标签。单击命令按钮可实现标签文字的放大、加粗、下画线、还原和移动功能。单击按钮可移动窗体。返回目录二十一、实验补充题1234第3章 数据类型
38、、常量与变量 数值型类型名中文名类型符字节表示范围精度Integer整型 2-3276832767精确Long长整型&4-2147483648 2147483647精确Single单精度浮点型!4-3.402823E 10-38 3.402823 10387位有效数字Double双精度浮点型#8-1.7976931348623210-308 1.79769313486232 10308 15位有效数字Currency货币型8-922337203685477.5808 922337203685477.580715位整数,4位小数Byte字节型10255精确一、基本数据类型 在计算机中,数据没有大
39、小和类别,是用一定位数的二进制数码表示的一种符号编码,这类似18位的身份证或学生证号,占同样大小的存储空间。不加快计算机的处理速度和节省存储空间,VB中将数据分为不同类型。字符串是指连续的字符序列。字符串数据类型是专门用来存放文字信息的。字符串型又分为“定长字符串型”和“变长字符串型”两大类。字符串类型所占的内存空间大小 与字符串长度有关。变长字符串型类型符号是“$”。String(字符串型)(字符串型)Boolean类型的数据只可能有两个值:True(逻辑“真”)和False(逻辑“假”),用来表示“是”与“否”、“开”与”关”、“对”与”错”这类只有两种取值的情况。一个逻辑型数据却要占2个
40、字节的存储空间。Date类型又称为日期型,这种类型的数据可以存放日期信息、时间信息或者同时存放日期与时间信息。Date类型数据用8个字节来表示日期和时间(公元100年1月1日9999年12月31日)。Boolean(逻辑型、布尔型)(逻辑型、布尔型)Date(日期时间型)(日期时间型)Object(对象型)和Variant(变体类型),将分别在后面节中讲解。Object(对象型)(对象型)和和Variant(变体类型),(变体类型),十进制:1、20、500、-101、230594、12%、234&八进制:&O11、&O123、&O321&错误:&081及&O88 十六进制:&H11、&HFF
41、 以&结尾发长整型 错误:&HFR二、各种数据类型的直接常量 普通记法:1.2、-1.4、4.5!、-5.67#科学记法:1.2E10、-1.23E-3错误:1.2E1.4、E4、12E 字节型、整型、长整型字节型、整型、长整型精度浮点型精度浮点型 只有两个取值:True、False 逻辑型逻辑型 使用“#”号作界定符:#1/1/2005#、#April 1,2005#、#1:00:00PM#、#1-1-2005 13:30:45#日期型日期型 使用双引号“”“”,将指定的字符串界定起来,如:“Visual Basic”、“你好!”。特殊的字符串:“”“”表示一个双引号,“”表示空字符串。字符
42、串常量中的双引号必须成对出现。字符串本身包括双引号时,必须用两个连续的双引号表示,如“V“”B”,则表示V”B,又如“”“Are You from chengDU?”,he asks.”。字符串型字符串型变量:在程序执行过程中存储临时数据的命名内存单元。变量名:程序是通过变量名来保存和访问相应内容单元中的值的。在VB中变量名有如下规则:(1)以字母开始,可以包括字母、数字和下划线;(2)不能包含标点符号;(3)不能多于255个字符;(4)不能与保留关键字重复(如:End、Private、Sub);(5)在同一作用域中,变量名不能重复。变量的数据类型:数据类型决定变量占用内存的大小、数据处理的方
43、式、表示值的范围。定义变量:Dim|Static|Private|Public 变量名 As 数据类型名如:Dim x1 As Integer 定义x1为整数型变量 Static C1 As Long Dim d As Date,f1 as Single,f2#分别定义d、f1和f2为日期型、单精度和双精度变量 Private S1 As String (定义变长字符串变量)Private S2 As String*4 (定义定义长字符串变量)变量赋值:通过以下形式的语句为变量赋值。Let 变量名=表达式 赋值语句的作用是把一个表达式的值赋予一个变量,即保存到变量所占的内存空间。被赋值之后变量
44、旧值被覆盖,变为新值。被赋的新值的类型和大小应与变量的数值类型相一致,否则会出错。另外,在过程、函数调用过程时,可以通过参数传递的方式为被调用过程中的变量赋值。三、变量 也称为“局部变量”,在过程中定义,作用域为所在的过程。定义过程级变量的方法有两种:Dim 变量名 AS 数据类型名动态局部变量 Static 变量名 AS 数据类型名静态局部变量如:Dim a As Integer 使用Dim关键字定义的局部变量只在定义它的过程执行时存在,过程执行完变量即消失。下一执行该过程时,会重新生成变量,重新初始化。使用Static关键字定义的局部变量称为“静态变量”,它在整个程序的运行过程都存在,但是
45、只能被定义它的过程所用。每次执行不重新进行初始化。可以在一个过程的多次执行之间保持其值。注:不能在过程中声明公用变量,只能在模块(窗体给和标准模块)的声明段中声明公用变量。四、变量的作用域 变量的作用域决定一个变量在什么代码范围内可以被访问。定义变量时所使用的关键字以及定义变量的位置决定了变量的作用域。引用变量的值:将变量名写到表达式中、过程函数实参表中,实际上就是对变量的值进行引用。如下式中,是将变量b和c的值求和后赋给变量a。a 的值变为新值,b和c的值被引用,并未改变。a=b+c 过程级变量 打开【例3.1】使用过程级变量,在中使用局部和静态变量。在模块或模块顶部的“通用声明段”中定义,
46、在该模块中的所有过程中可用。定义的方法(两种方法等价):Dim 变量名 As 类型名 Private 变量名 As 类型名如:Private d As Date Private S1 As String (定义变长字符串变量)Private S2 As String*4 (定义定义长字符串变量)一个定长字符串变量所占的内存空间是一定的,当其中的字符信息没达到这个长度时,所剩的空间用户“空格“填充。如果给定长字符串变量赋一个超过其长度的字符串,会被截掉多余部分,不会出现“溢出”错误。模块级模块级(窗体级或模块级窗体级或模块级)变量变量 应用程序级变量应用程序级变量 定义:也称为“全局变量”或“公
47、共变量”,在标准模块顶部的“通用声明段”中使用Public(Global)关键字定义。全局变量在程序(即同一个工程中)的所有模块中皆可用。Public 变量名 As 类型名如:Public p As Boolean 注:不能在窗体模块中定义全局定长字符串变量。打开【例3.2】使用模块级变量,模块(或窗体)级变量的定义和使用。打开【例3.3】为模块级变量赋初值(可在Load事件中进行)。引用 一个应用程序的结构如右图所示。访问另一个模块(窗体)中定义的全局变量,应在变量名前加模块名修饰。如 Form2.int1=2 在没有重名的情况下,访问标准模块中的全局变量,不必加模块名。数值型变量的默认值为
48、0;逻辑型变量的默认值为False;日期时间型变量的默认值为#0:00:00#;变长字符串变量的默认值为空字符串;定长字符串变量的默认值是全部由空格组成的字符串,空格个数等于定长字符串的字符个数;对象型变量的默认值为Nothing;变体类型变量的默认值为Empty。四、变量的默认值 变量被定义之后,在第一次赋值之前,并不是没有值的,而是具有默认值。五、强制变量定义 默认情况下,所有未出现过程的标识符,都被VB当成变体类型的变量。这样,使得程序不容易调试,可以在模块声明段中加上:Option Explicit使得所有的变量必须定义才能使用。对象型变量占用4个字节共32位的内存空间,保存的是某一个
49、对象的引用(即内存中的地址),程序对对象型变量的操作等于对它所引用对象的操作。对对象型变量赋值要用Set语句。对象型变量在被定义但未被赋值时的值是一个特殊值:Nothing。例如,右图所示:Private Sub Command1_Click()Dim a As Object Set a=Form1 a.Font=“楷体_gb2312”:a.FontSize=16 a.Caption=对象变量的使用 Print a.Caption End Sub Object类型的变量可以引用任何一种类型的对象。如果在使用中,一个变量只引用一种特定类型的对象时,就可以将该变量定义为此特定类的对象型变量。定义特
50、定类型对象型变量,要使用对象的类型名,如已学习过的:Form、Textbox、CommandButton、Line、Shape等。例:Dim obj2 As CommandButtonSet obj2=cmdOK:obj2.Caption=Hello!注:对象型变量没有默认值,定义之后未赋值之前不能使用。特定类型对象型变量只能引用同一类型的对象。例:Dim obj3 As Form:Set obj3=cmdOK(错!)八、对象型数据类型(Object)变体类型变量可以存贮几乎所有系统定义类型的数据(除定长字符串和用户自定义类型)。把其它类型的数据赋给变体变量,变体变量的类型会随之变化,适应新的