1.5 建立简单的VB应用程序
1.5.1 VB可视化编程基本步骤
建立一个VB应用程序的一般过程如下:
(1)设计并建立用户界面。即在窗体上建立各控件对象。
(2)设置各对象的属性。即在属性窗口为各控件对象进行初始属性设置。 (3)编写所需事件过程代码。即在代码窗口为激发控件对象执行所需操作的事件过程代码。 (4)保存程序。在运行程序前,保存程序可以避免由于各种原因造成的程序丢失。 (5)运行和调试程序。在VB集成环境下调试好程序,无误后将其再次保存。
(6)生成可执行文件。可执行文件(扩展名为.exe)可作为Windows应用程序,在Windows环境下直接运行。本步骤根据情况可选。
本节将结合实例,帮助读者学会建立简单的VB应用程序。
【例1.8】编写一个程序,输入正方形的边长,计算并输出正方形的面积。为简单起见,这里假设每次输入的正方形边长均大于0。程序运行界面如图1-16所示。
图1-16 计算正方形面积运行界面
(1)建立工程,分析并设计用户界面。
任何程序,无论大小,都应该对其问题性质特征、解决途径等进行必要的分析,这是一种良好的程序设计思维习惯,根据本程序要求,文本框具有编辑和显示文本能力,因此可设计两个文本框分别用来接收用户输入正方形的边长及显示面积计算结果,两个标签用于提示信息,两个命令按钮供用户和程序交互,即点击“计算”命令按钮,可完成计算并显示结果,点击“退出”命令按钮可退出程序。
通过“文件”菜单“新建工程”可以打开“新建工程”对话框,选择“标准化EXE”。确定后可建立工程,工程的默认名称是:工程1,可以通过工程属性窗口将工程改名。在工程的默认窗体Form1上建立Label1、Label2、Text1、Text2、Command1、Command2六个控件并调整好位置和大小。
(2)控件对象的初始属性设置
控件对象的初始属性设置在“属性窗口”中完成。按表1-6设置相关属性,其它属性取默认值。
表1-6 【例1.8】相关属性设置 控件默认名称 Form1 Label1 Label2 Text1 属性设置 Caption=“计算正方形面积” 控件默认名称 Text2 属性设置 Text=”” Caption=“计算” Caption=“退出” Caption=“请输入正方形边长=” Command1 Caption=“计算该正方形面积=” Command2 Text=”’ (3)编写所需事件过程代码。
为使程序能够执行任务,需要编写代码。本例中要用到两个命令按钮的单击事件过程。命令按钮“计算”的Click事件过程功能是单击后能计算出正方形面积并在text2中显示出来,命令按钮“退出”的Click事件过程功能是单击后退出程序。
现以“计算”按钮为例,说明Command1_Click()事件过程编码的步骤:
①用前面介绍的方法切换至代码窗口,单击“对象”列表框右边的下拉按钮,将列出当前窗体中包含的所有对象,从列表中选择命令按钮Command1。
②单击“过程”列表框右边的下拉按钮,将列出与Command1对象相关的所有事件,选择本例所需要的Click事件。此时,代码窗口显示出该事件的模板,在过程头和过程尾的代码编辑区输入过程体,本例的代码如下:
Private Sub Command1_Click() '过程头,由系统自动生成
Text2.Text = Text1.Text * Text1.Text '取Text1中的边长计算面积并在Text2中显示
End Sub ' 过程尾,由系统自动生成
③重复上述步骤建立其它事件过程,如本例的Command2_Click()事件过程。 Private Sub Command2_Click()
End '结束程序 End Sub
这里再次提醒初学者注意,事件过程的模板(即过程头和尾)是由系统自动生成(用户自定义过程除外),用户不必重复输入。 (4)保存程序。
在VB中,一个应用程序是以工程文件(扩展名为.vbp)的形式保存在磁盘上,工程中可能涉及多种文件如窗体文件、标准模块文件等,一个程序至少应有一个窗体文件。本例中仅有一个窗体,因此,只需要保存一个窗体文件(扩展名为.frm)和工程文件。步骤如下: ①保存窗体文件。选择“文件”菜单的“Form另存为(A)”,系统弹出“文件另存为”对话框,如图1-17。用户在“保存在”文本框中选择保存的位置,VB的默认保存目录是VB98。在“文件名”文本框中输入文件名(通常情况下无需输入扩展名,系统会根据不同文件类型自动添加),本例中窗体文件名为1-18Form1.frm。. 本例中工程只包含一个窗体文件,实际的应用程序可能有多个窗体文件、标准模块文件等,那么对每个文件,都存在着类似的保存操作。注意:同一文件夹下不能有相同的窗体文件名。
图1-17窗体文件的“文件另存为”对话框
②保存工程文件。选择“文件”菜单下的“工程另存为”,系统弹出“工程另存为”对话框,和图1-17相似操作,给工程文件取名并保存。 【注意】
㈠如果应用程序是第一次被保存或对已存在文件修改后的不改名存盘,可选择“文件”菜单的“保存Form”、“保存工程”命令保存。若用户欲对修改后文件改名存盘,则必须选择“Form1另存为”、“工程另存为”命令。系统默认文件夹是“VB98”,用户要注意存盘时一定要清楚文件保存的位置和文件名,否则下次使用或修改程序时可能找不到所需文件。
㈡若工程中存在多个窗体时,必须指定一个启动窗体,启动窗体通常是指程序运行时显示的第一个窗体。方法是利用“工程”菜单中的“工程属性”命令打开“通用”选项,见图1-18,在启动对象列表框中选择一个窗体后确定即可。
图1-18 工程属性对话框
(5)运行和调试程序
在VB中,程序有两种模式运行,分别是编译模式和解释模式。 ①解释运行模式
这是编写简单应用程序常用的运行模式。选择“运行”菜单的“启动”命令(或直接单击工具栏上“启动”按钮),程序将处于解释运行模式,等待用户激发事件,系统将相应事件过程代码转换成机器代码然后执行,由于转换后的机器代码不保存,如需再次运行该程序,必须再解释一次。 在本例中,“启动”后,用户在Text1中输入正方形边长,如输入“15”,单击“计算”按钮激发Command1_Click()事件过程,程序执行后在Text2中显示出计算结果(见图1-16)。单击“退出”按钮,激发Command2_Click()事件,结束程序运行。
若程序运行过程中有出错信息对话框弹出,系统将自动进入“中断”运行模式,回到代码窗口提示用户进行代码的修改,修改后再调试运行。 ②编译运行模式
选择“文件”菜单的“生成?exe”命令,系统将程序中的全部代码转换为机器代码,并保存在扩展名为.exe的可执行文件中,可供以后多次运行。一般编程时代码均在解释运行模式下通过后再编译成可执行文件。
1.5.2 VB源程序的书写规范
我们把VB的事件过程代码称为源程序,和任何其它程序设计语言一样,VB源程序有一定的书写规范,主要有:
1. 语句书写自由
◆ 一行可写多条语句,语句之间用“:”(冒号)隔开。
◆ 一条语句若太长,可分行书写,在每行末尾处须加续行符,续行符由空格加下划线
组成。
◆ 一行最多允许书写255个字符,一条语句最多包含1023个字符。 2. VB代码不区分大小写字母
在VB代码中,不区分字母的大小写,VB认为“NEXT”和“next”是相同的标识。为了提高程序的可读性,无论用户输入的字母是大小还是小写,遇到下列情况,VB自动对程序代码作转换:
◆ 程序中出现的关键字的首字母,总是被自动转换成大写,其余字母转换成小写。 ◆ 如关键字由多个英文单词组成,VB将每个单词首字母转换成大写。
◆ 对于用户自已定义的变量、过程名,VB均以第一次定义为标准,以后的输入均自
动向首次定义转换。
3. 给VB代码适当的注释有利于程序的阅读和修改。 VB中可以用关键词REM或英文单引号(‘)来引导注释内容,细心的读者可能早已注意到前面的例题当中多次出现由英文单引号(‘)引导的注释。用英文单引号(‘)引导的注释可以直接出现在语句后面,VB系统对注释内容既不编译也不执行,仅供人阅读,以便于理解程序语句的含义。给程序加注释是一种良好的编程习惯。任何字符都可以在注释行中作为注释内容,注释语句通常放在过程、模块的开头作为标题用,也可放在执行语句(单行或者复合语句行)的后面,但不可以放在续行符的后面。
注释不仅仅是对程序的解释,有时它对于程序的调试也非常有用,譬如说在程序调试的过程中,可以先利用注释屏蔽一条语句以观察变化,发现问题和定位错误。以后注释语句将是我们在编程里经常要用到的语句之一。如果要使多行语句或文字成为注释,可使用“编辑”工具栏的“设置注释块”、“解除注释块”按钮,使选中的若干行语句(或文字)成为及解除注释。“设置注释块”、“解除注释块”可通过“视图”菜单的“工具栏”显示出来。
4. VB中所有的语句标点符号必须是英文半角字符。
冒号、点号、逗号、分号、界定字符串的双引号、注释用的单引号等标点符号都必须是英文半角字符,如果出现中文标点VB将认为有语法错误。
5. 代码书写时按层次缩进格式以增加程序的可读性。
【例1.9】如图1-19所示,编写程序实现:在文本框中输入一段文字,单击命令按钮“放大”可将文本框中文字放大,单击命令按钮“缩小”可将文本框中文字缩小,“还原”按钮可将放大或缩小后的文字还原为原字号大小。控件及初始属性设置见表1-7。
图1-19 【例1.9】运行界面
控件默认名称 Form1 Label1 Text1 属性设置 Caption=”字符缩放例:” Caption=” 在文本框中输 入一段文字” 控件默认名称 Command1 Command2 属性设置 Caption=“放大” Caption=“缩小” Caption=“还原”, Enabled=false Text=’’,MultiLine=true Command3 事件过程代码如下:
Dim temp As Integer '定义一个整型变量用于临时存放文本框中原字号大小
Rem (注释语句不执行)下面过程可实现文字的放大 Private Sub Command1_Click()
temp = Text1.FontSize '把文本框中文字字号大小保存在变量temp中 Text1.FontSize = 2 * Text1.FontSize '将字号放大两倍
Command1.Enabled = False '“放大”按钮不可用,呈灰色显示 Command3.Enabled = True '“还原”按钮变为可用 End Sub
Private Sub Command2_Click()
Rem 注释语句,下面过程可实现文字的缩小 temp = Text1.FontSize
Text1.FontSize = Text1.FontSize / 2 '将字号缩小1/2 Command2.Enabled = False Command3.Enabled = True End Sub
Private Sub Command3_Click()
Text1.FontSize = temp '将变量中保存的原字号大小还原
Command1.Enabled = True: Command2.Enabled = True ‘一行写多条语句,以冒号隔开
Command3.Enabled = False End Sub
【注意】程序中两种注释语句及代码的缩进层次的写法,程序中用到的变量知识,在下一章中将详细介绍。