课堂笔记
以事件驱动应用程序的工作方式
下面是事件驱动应用程序中的典型工作方式: 1、启动应用程序,装载和显示窗体。
2、窗体(或窗体上的控件)接收事件。事件可由用户引发(例如通过键盘或鼠标操作),可由系统引发(例如定时器事件),也可由代码间接引发(例如当代码装载窗体时的Load事件)。 3、如果在相应的事件过程中已编写了相应的程序代码,就执行该代码。 4、应用程序等待下一次事件。 1.对象
是基本的运行时的实体,如窗体、各种控件等,它包括对象的行为(方法)和对象的响应(事件)。
将数据和处理这些数据的过程封装在一起. 2.类
是一个抽象的整体概念 ,对象是类的实例化。
3. 对象的命名
每一个对象都有自己的名字。每个窗体、控件对象在建立时VB系统给出了一个默认名。用户可通过属性窗口设置(名称)来给对象命名。 命名的原则:
(1)必须由字母或汉字开头、随后可以是字母、汉字、数字、下划线(最好不用)串组成。 (2)长度<=255个字符。 (二)对象的三要素
1.属性 对象 . 属性 = 属性值
对象的性质,即用来描述和反映对象特征的参数。 2.事件 对象名_事件 ( [参数名表 ] )
响应对象的动作称为事件,它发生在用户与应用程序交互时。如单击控件、鼠标移动、键盘按下等。
3.方法 [对象 . ]方法 [参数名表 ]
对象的行为,即将一些通用的过程编写好并封装起来,作为方法供用户直接调用。 设计模式:可进行界面的设计和代码的编制。
用户可以设计窗体、绘制控件、编写代码并使用“属性”窗口来设置或查看属性设置值。 运行模式:运行应用程序,不可编辑代码和界面。
用户可与应用程序交流。可查看代码,但不能改动它。 中断模式:应用程序运行暂时中断,可编辑代码,不可编辑界面。 用户可查看各变量及不是属性的当前值,从而了解程序执行是否正常。还可以修改程序代码,检查、调试、重置、单步执行或继续执行程序。 工程文件(.vbp):该工程所有文件和对象的清单 窗体文件(.frm):窗体及控件的属性设置、窗体级常量、变量的声明,事件过程和自定义过程 窗体的二进制数据文件(.frx):如果窗体上控件的数据属性含有二 进制属性(例如图片或图标),当保存窗体文件时,自动产生同名.frx文件。 标准模块文件(.bas) 类模块的文件(.cls)
1
资源文件(.res)
ActiveX控件的文件(.ocx) 一)编码规则 1.VB代码中不区分字母的大小写。 2.在同一行上可以书写多条语句,但语句间要用冒号“:”分隔。 3.若一个语句行不能写下全部语句,或在特别需要时,可以换行。换行时需在本行后加入续行符,1个空格加下划线“_”。 4.一行最多允许255个字符。 5.注释以Rem开头,也可以使用单引号“‘”,注释内容可直接出现在语句的后面。 数值(Numeric)数据类型 (1)整型(Integer):表示-32768至32767之间的整数 例如:10% 110% 20% (2)长整型(Long):
表示-2,147,483,648至2,147,483,647之间的整数 例如:长整型常数的书写: 23& (3) 单精度实型(Single):有效数为7位
表示-3.37E+38至3.37E+38之间的实数
例如:常数的表示: 3.14! 35! 3e8! (4)双精度实型(Double):有效数为15位
表示-1.67E+308至1.67E+308之间的实数
例如:常数的表示: 3.14# 3e8# (5)货币型(Currency):定点实数
保留小数点后4位,小数点左边最多能有15位数。 例如:常数的表示: 3.14@ 1234@ (6)字节型(Byte) 存储二进制数。 2、日期(Date)数据类型
Date型按8个字节的浮点数来存储,日期:100年1月1日至9999年12月31日 时间:0:00:00到23:59:59
日期和时间字符只要用号码符“#”括起来,都可以作为日期型数值。例:#5/12/98#、#January 1,1997#。
3、逻辑(Boolean)数据类型:
只有两个值True,或False。将逻辑数据转换成整型时:True为-1,False为0;其它数据转换成逻辑数据时:非0为True, 0为False。 4、字符串(String)数据类型:
有两种字符串:定长字符串和变长字符串
字符串中每个字符占一字节,以储存0~65,535个字符, 5、对象(Object)数据类型:
Object变量通过32位(4个字节)地址来存储。 6、用户自定义类型:
7、变体(Variant)数据类型: 是一种通用的、可变的数据类型。 Dim a as Variant也是所有未定义的变量的缺省类型定义。 变量:在程序运行中其存储的值可以改变。 常量:在程序运行中其值不可以改变。 1、 常量
2
1).直接常量(普通常量)
前面介绍的各种类型的常数值,如整型、长整型、单精度浮点数、双精度浮点数等等。 八进制常数形式:数前面+&O
如:&O305 &O743 十六进制常数形式:数前面+&H 如: &H43abc 2). 用户声明常量(符号常量) 形式:
Const 常量名 [AS 类型] = 表达式
省略 [AS 类型] ,常量的类型由表达式值的类型决定 为使与变量名区分,一般常量名使用大写字母 例 Const MAX=100 3). 系统提供的常量
系统定义常量位于对象库中,可通过“对象浏览器”查看. 例: vbNormal vbMinimized、vbbCrLf等 2、变量
1).变量和常量的命名规则
(1).以字母或汉字开头,后可跟汉字、字母、数字或下划线组成,长度小于等于255个字符; (2).不要使用VB中的关键字; (3).VB中不区分变量名的大小写.
(4).为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。 例如:strAbc(字符串变量) iCount(整型变量) dblx(双精度变量) sYz(单精度变量) 2).变量声明
(1).用Dim语句显式声明变量
形式 : Dim 变量名 [AS 类型] Dim 变量名类型符
例 Dim iCount As integer , sAllsum As single 等价于 Dim iCount%, sAllsum! 例 Dim str1 As String
Dim str2 As Srting*50 (2)隐式声明
未进行上述的声明而直接使用的变量,其类型为 Variant 类型
建议不使用。容易出现变量名写错的情况,这样的话,会产生一个新的变量。
注意: 在通用声明处加 Option Explicit 语句来强制显式声明变量。
例 Dim a,b,c As integer
该语句声明了C为整型,A,B则为Variant类型
(一) 运算符 1. 算术运算符
例:5+10 mod 10 \\ 9 / 3 +2 ^2 结果:10
3
2. 字符串运算符
& 、+ 字符串连接
\ 结果 \ \结果 \
作为字符串运算符: + 两边必须是字符串, & 不一定 例如:
\ '出错 \ ' 结果为 \ \ 456 ' 结果为 579 \ 456 ' 结果为 \3.关系运算符
将两个操作数进行大小比较,结果为逻辑量。
字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。 例: \ 结果为 False
汉字字符大于西文字符 关系运算符的优先级相同 4. 逻辑运算符
将操作数进行逻辑运算,结果是逻辑值 说明:
若操作数是数值型,则按数值的二进制值逐位进行逻辑运算。以非0为真(True),0为(False)。
(1) And运算符常用于屏蔽某些位。 如取c1变量中的最后3位的逻辑运算: c1 And 7 (取出变量c1中的低3位)
(2) Or 运算常用把某些位置1。
c1 Or 7 (变量c1的最后3位置1)
(二) 表达式 1. 组成
变量、常量、函数、运算符和圆括号 2.书写规则
(1)乘号不能省略。例x 乘以y 应写成:x * y (2)括号必须成对出现,均使用圆括号。
(3)表达式从左到右在同一基准上书写,无高低、大小 3. 不同数据类型的转换
运算结果的数据类型向精度高的数据类型靠. Integer 例如:25+3.14*2+3.5# 结果为 双精度实型 4. 优先级 算术运算符>字符运算符>关系运算符>逻辑运算 例:设 a = 1,b = 3,c = 3.5,求: 1 + b > c And b \\ 2 = a b & 5 - a 例:表示算术表达式:3≤x≤7 4 正确的VB表达式: 3<=x And x <=7 错误的VB表达式: 3<=x<=7 或 3<=x Or x<=7 七、常用内部函数 VB提供了上百种内部函数(库函数),要求掌握这些常用函数的功能及使用。 调用方法: 函数名(参数列表) 有参函数 函名 无参函数 说明: (1) 使用库函数要注意参数的个数及其参数的数据类型 (2) 要注意函数的定义域(自变量或参数的取值范围) 例如: sqr(x) 要求: x>=0 (3) 要注意函数的值域。 1. 数学函数 Abs(N) Cos(N) Sin(N) Exp(N) Log(N) Sqr(N) Rnd[(N)] Sgn(N) (1) 在三角函数中的自变量是以弧度为单位。 如:sin30° sin(3.14159/180*30) (2) Rnd函数返回0 ~ 1(包括0和不包括1)之间的双精度随机数。 若要产生1-100的随机整数: Int(Rnd *100)+1 每次运行时,要产生不同序列的随机数,执行Randomize 语句。 使用形式: Randomize [number] number 是随机数生成器的种子值,如果省略,系统将计时器返回的值作为新的种子值。 2. 转换函数 (1)要区别两个取整函数int()和fix() Fix(N)为截断取整,即去掉小数后的数。 Int(N)不大于N的最大整数。 N>0与int(N) 相同,当N<0时, int(N) 与fix(N) -1相等。 例如: Fix(9.59) =9, Fix(-9.59) = -9 Int(9.59) =9, Int(-9.59) = -10 思考:如何实现四舍五入取整? (2)Asc(“Abcd”) 值为: 65 (只取首字母的Ascii值) (3)Val(“abc123”) 值为:0 , Val(“1.2sa10”) 值为1.2 (4)Chr(65) 值为:“A” Chr(13) 回车符 (5)Str(65) 值为:“ 65” Str(-256.65000) 值为 \3. 字符串操作函数 len(“This is a book!”)15 Left$(“ABCDEFG”,3) \ Mid$(\ \ Ucase(\ \ Trim(\ Abcd \ \ RTrim(\ Abcd \ \ ABcd\ String(5, \) \ 4. 日期函数 Time( ) Date( ) Now Year( ) Month( ) Day( ) 5.格式输出函数 功能:按用户指定格式返回表达式,常常用在print方法中。 使用形式:print Format$(表达式[,“格式字符串”]) 表达式:可以是数值、日期或字符串型表达式。 5