vb代码设计
- 格式:doc
- 大小:26.00 KB
- 文档页数:11
If Check1.V alue = 1 ThenFrame2.Enabled = True: Label4.Enabled = TrueLabel5.Enabled = True: txtV.Enabled = TrueElseIf Check1.Value = 0 ThenFrame2.Enabled = False: Label4.Enabled = FalseLabel5.Enabled = False: txtV.Enabled = FalseEnd IfDim xYH# (),yYH# (),fYH# (),IYH# (),xHZ# (),yHZ# (),fHZ# (),IHZ# (),iYH%,iHZ%Private Sub Checkl Click()If Checkl. Value= l ThenFrame2. Enabled= True: Label4. Enabled=TrueLabel5. Enabled= True: txtV. Enabled= TrueElself Checkl. Value=0 ThenFrame2. Enabled= False: Label4. Enabled=FalseLabel5. Enabled = False: txtV. Enabled = FalseEnd IfEnd SubDim dblA# ,dblR# dbUD#, s As String,dblT# ,dblL#,dblE#, dblD#Dim dblZY#, dbIQZ#, dblYZ# ,i%,fab#Dim Is#,V#,bet0#,P#,9#,Th#,Lh#,Ly#,Eh#,Dh#Dim dblZH # ,dblHY# ,dblYH# ,dblHZ#dblA=DoToHu(Val(txtA. Text)):dbIR=Val(txtR. Text): dblJD=ZToS(txtJD. Text)Public Function ZToS(s As String) As DoubleDim iPos%:iPos=lnStr(s,"+")ZToS=Val(Right(Left(s,iPos),iPos-1) * 1000+Mid(s,iPos+1))End FunctionPublic Function SToZ(dbI#) As StringDim k%,m#k=dbl\1000:m=dbl-k* 1000:SToZ="k" & Trim(Str(k))&"+"& Trim(Str(m))End FunctionIf Checkl. Value=0 ThenDblT=dblR * Tan(dblA/2):dblL=dblR * dblADblE=dblR * (1/Cos(dblA)-1):dblD=2 * dblT-dbtLdblZY-=dbUD-dblT:dbIYZ =dblZY+dbIL: dbIQZ=dbIYZ-dhlL/2If Abs(dbUD-(dbIQZ+dbID/2)) > 0. 000001 Then MagHoxIzy= dblQZ\20 - dblZY\20: iYZ= dblYZ\20- dblQZ\20ReDim xZY # (iZY),yZY # (iZY), fZY # (iZY),IZY # (iZY)ReDim xYZ# (iYZ),yYZ# (iYZ),fYZ# (iYZ),IYZ# (iYZ)IZY(0)=0: fZY(0)=0: xZY(0)=0: yZY(0) =0For i=0 To iZY-1IZY(i+1)=((i+1) * 20-(dbIZY-(dblZY\20) * 20))fZY(i+1)=IZY(i+1)/dbIRxZY(i+1)=dbIR * Sin(fZY(i+1)):yZY(i+1)=dbiR * (1-Cos(fZY(i+1)))Next iIYZ(0)=0:fYZ(0)=0:xYZ(0)=O:yYZ(0)=0'For i=0 To iYZ-1IYZ(i+1)=((iYZ-i-1) * 20+(dblYZ-(dbIYZ\20) * 20))fYZ(i+1)=IZZ(i+1)/db1RxYZ(i+ 1) =dbIR * Sin(fYZ(i+ 1)) : yYZ(i+ 1) = dblR * (1-Cos(!YZ(i+ 1))) Next iWith MSFIexGridl. Cols=5 :.Rows= iZY+iYZ+4. Row=O. Col-O:.Text="桩号" Col= 1: .Text= "Li". Col=2:. Text="圆心角":. Col=3:. Text="Xi". Col=4:. Text="Yi" `. Row= 1:. Col= 0:. Text="ZY " & SToZ(db1ZY). Col= 1:. Text= IZY(0):. Col= 2:. Text= fZY(0). Col= 3:. Text= xZY(0):. Col= 4:.Text= yZY(0)For i=1 To iZY. Row= i+1:. Col=O:. Text="+" & ((dbIZY-(dblZY\I000) * 1000)\20+i) * 20. Col= I:. Text= Format(IZY(i),"0.00"). Col=2:. Text= Format(HuToDo(fZY(i)),"0.0000"). Col= 3:. Text= Format(xZY(i), "0.00" ). Col=4:. Text= Format(yZY(i) , "0.00" )Next i. Row=iZY+2:. Col=O:. Text= "QZ " & SToZ(dbIQZ)For i=0 To iYZ-1. Row=i+iZY+3. Col=0:. Text="+" & ((dbIQZ-(dbIQZ\1000) * 1000)\20+i+l) * 20. Col=l:. Text= Fortnat(IYZ(i+1),"0.00"). Col=2:. Text= Format(HuToDo(fYZ(i+1)), "0.0000" ). Col=3:. Text= Format(xYZ(i+1) , "0.00"). Col=4:. Text- Format(yYZ(i+ 1),"0. 00")Next i. Row=iZY+iYZ+3:. Col=0:. Text="YZ " & SToZ(dblYZ). Col=l:. Text=IYZ(0):. Col=2. Text=fYZ(0). Col=3:.Text-xYZ(0):,.Col=4:. Text=yYZ(0)End WithElseIf Checkl. Value= l ThenV=Val(txtV. Text) :Is=0.035 * V * V * V/dbIR:betO=1s/(2 * dbIR) p= Is * Is/(24 * dbIR):q=is/2-Is * is * Is/(240 * dbIR * MR)Th=(dbIR+p) * Tan(dbiA/2)+q:Ly=dbIR * (dbiA-2 * bet0)Lh=Ly+2 * is:Eh=(dblR+p)/Cos(db1A/2) - dbIR:Dh=2 * Th-LhdbIZH=dblJD-Th:dblHY=dbIZH+ls:dblYH=dbIHY+LydblHZ=dbIYH+ls:dbIQZ=dblHZ-Lh/2If Abs(dblJD-(dbIQZ+Dh/2))>0.000001 Then MsgBoxiZH=dbIHY\20-dbiZH\20: iHY=dbIQZ\20-dbl HY\20iYH=dbiY H\20-dbIQZ\20: i HZ- dblHZ\20-dbIYH\20ReDim xZH # (iZH), yZH # (iZH), fZH # (iZH),IZH # (iZH)ReDim xHY# (iHY),yHY# (iHY),fHY# (iHY),IHY# (iHY)ReDim xYH # (iYH), yYH # (iYH),fYH # (1YH),IYH # (iYH)ReDim xHZ# (1HZ),yHZ# (iHZ),fHZ# (iHZ),IHZ# (iHZ)Dim tempi #IZH(0)=0:fZH(0)=0:xZH(0)=0:yZH(0)=0For i=0 To iZH-11ZH(i+1)=((i+1) * 20-(dbIZH-(dbIZH\20) * 20))fZH(i+l)=IZH(i+1)/dbIRxZH(i+1)=1ZH(i+1)-IZH(i+1)-5/(40 * dbIR * dbIR * Is * Is)yZH(i+1)=IZH(i+1)^3/(6 * dbiR * Is)Next iIHY(0)=0:fHY(0)=0:xHY(0)=0:yHY(0)=0For i=0 To iHY-1IHY(i+1)=((i+iZH+1) * 20+(dbIZH-(dbIZH\20) * 20))fHY(i+l)=IHY(i+1)/dbIRxHY(i+1)=dbiR* Sin(fHY(i+1))yHY(i+1)=dbIR * (1-Cos(fHY(i+1)))Next iIYH(0)=0:fYH(0)=0:xYH(0)=0:yYH(0)=0For i=0 To iYH-1IYH(i+1)=((iYH-i) * 20+(dbIQZ-(dblQZ\20) * 20))fYH(i+1)=IYH(i+1)/dbIR xYH(i+l) =dbIR * Sin(fYH(i+1))yYH(i+1)=dbIR* (1-Cos(fYH(i+1)))Next iIHZ(0)=0:fHZ(0)=0:xHZ(0)=0:yHZ(0)=0For i=0 To iHZ-1IHZ(i+1)=((iHZ-i) * 20-(dblHZ Mod 20))fHZ(i+1)=IHZ(i+1)/dblRxHZ(i+1)=IHZ(i+1)-IHZ(i+1)^5/(40 * dbIR * dbIR * is * 1s)yHZ(i+1)=IHZ(i+1)^3/(6 * lIbIR * Is)Next iWith MSFIexGridl. Cols=5:. Rows=iZH+iHY+iYH+iHZ+6. Row=0. CoI=0:.Text="桩号":.Col=1:.Text-"Li". Col=2:. Text="圆心角":. Col=3:. Text= "Xi". Col=4:. Text="Yi". Row= 1:. CoI=0:. Text-"ZH " & SToZ(dbIZH).Col= 1:. Text=IZH(0):. Col=2:. Text-fZH(0). Col=3:. Text=xZH(0) :. Col=4:. Text=yZH(0)For i=1 To iZH. Row=i+1:. Col=O:. Text="+" & ((dblZH-(dblZH\1000) * 1000)\20+i) * 20. Col= 1:. Text= Format(IZH (i), *0. 00"). Col=2:. Text= Format( HuToDo(fZH(i)),"0.00"). Col=3:. Text= Format(xZH(i),"0. 00"). Col=4:.Text= Format(yZH (i) , "0.00")Next i. Row=iZH+2:. CoI=O:. Text="HY " & SToZ(dblHY)For i=1 To iHY. Row=i+iZH+2. Cot =O:. Text="+" & ((dblHY-(dbIHY\1000) * 1000)\20+i) * 20. Col=1:. Text- Format(IHY(i),"0.00"). Col=2:. Text= Format(HuToDo(f HY(i)) , "0.00"). Col= 3:. Text= Format(xHY(i) , "0.00"). Col= 4:. Text= Format(yHY(i),"0. 00")Next i. Row=iZH+iHY+3:. Col=O:. Text="QZ " & SToZ(dbIQZ)For i=1 To iYH. Row=i+iZH+iHY+3. Col=O:.Text="+" & ((dbIQZ-(dbIQZ\1000) * 1000)\20+i) * 20. Col= 1:.Text=Format(IYH(i),"0.00"). Col= 2:. Text= Format(HuToDo(fYH(i)) , "0.00"). Col=3:. Text= Format(xYH(i),"0.00"). Col= 4:.Text- Format(yYH(i), "0.00" )Next i. Row=iZH+iHY+iYH+4,. Col=0,. Text "YH " & SToZ(dblYH)For i=1 To iHZ. Row-i+iZH+iHY+iYH+4.Col=0:. Text="+" & ((db1YH-(db1YH\1000) " 1000)%2O+i) * 20. Col=1:.Text= Format(IHZ(i),"0.00"). Cot=2:.Text= Format(HuToDo(fHZ(i)), "0.00'). Col=3:.Text= Format(xHZ(i),"0.00"). Col=4:. Text- Format(yHZ(i), "0.00")Next i. Row=iZH+iHY+iYH+iHZ+S:. Col=0:. Text="HZ " & STo (dbIHZ). Col=l :. Text=IHZ(0):. Col=2:. Text-fHZ(0). Cot=3:. Text-=xHZ(0):. Col=4:. Text=yHZ(0)End WithEnd Il。
VB简易计算器代码以下是一个简单的VB计算器代码:```Public Class Form1Dim firstNum As Double ' 第一个数字Dim secondNum As Double ' 第二个数字Dim operation As Integer ' 1-加法,2-减法,3-乘法,4-除法Private Sub Button0_Click(sender As Object, e As EventArgs) Handles Button0.ClickTextBoxResult.Text = TextBoxResult.Text & "0"End SubPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickTextBoxResult.Text = TextBoxResult.Text & "1"End SubPrivate Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.ClickTextBoxResult.Text = TextBoxResult.Text & "2"End SubHandles Button3.ClickTextBoxResult.Text = TextBoxResult.Text & "3"End SubPrivate Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.ClickTextBoxResult.Text = TextBoxResult.Text & "4"End SubPrivate Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.ClickTextBoxResult.Text = TextBoxResult.Text & "5"End SubPrivate Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.ClickTextBoxResult.Text = TextBoxResult.Text & "6"End SubPrivate Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.ClickTextBoxResult.Text = TextBoxResult.Text & "7"End SubHandles Button8.ClickTextBoxResult.Text = TextBoxResult.Text & "8"End SubPrivate Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.ClickTextBoxResult.Text = TextBoxResult.Text & "9"End SubPrivate Sub ButtonDot_Click(sender As Object, e As EventArgs) Handles ButtonDot.ClickIf Not TextBoxResult.Text.Contains(".") ThenTextBoxResult.Text = TextBoxResult.Text & "."End IfEnd SubPrivate Sub ButtonAdd_Click(sender As Object, e As EventArgs) Handles ButtonAdd.ClickfirstNum = Double.Parse(TextBoxResult.Text)TextBoxResult.Text = ""operation = 1End SubPrivate Sub ButtonSubtract_Click(sender As Object, e As EventArgs) Handles ButtonSubtract.ClickfirstNum = Double.Parse(TextBoxResult.Text)TextBoxResult.Text = ""operation = 2End SubPrivate Sub ButtonMultiply_Click(sender As Object, e As EventArgs) Handles ButtonMultiply.ClickfirstNum = Double.Parse(TextBoxResult.Text)TextBoxResult.Text = ""operation = 3End SubPrivate Sub ButtonDivide_Click(sender As Object, e As EventArgs) Handles ButtonDivide.ClickfirstNum = Double.Parse(TextBoxResult.Text)TextBoxResult.Text = ""operation = 4End SubPrivate Sub ButtonClear_Click(sender As Object, e As EventArgs) Handles ButtonClear.ClickTextBoxResult.Text = ""End SubPrivate Sub ButtonEquals_Click(sender As Object, e As EventArgs) Handles ButtonEquals.ClickDim result As DoublesecondNum = Double.Parse(TextBoxResult.Text)Select Case operationCase 1result = firstNum + secondNumCase 2result = firstNum - secondNumCase 3result = firstNum * secondNumCase 4result = firstNum / secondNumEnd SelectTextBoxResult.Text = result.ToStringEnd SubEnd Class```这个计算器包括数字按钮0-9、小数点按钮、加法、减法、乘法、除法和等于按钮。
vb程序设计烟花代码
VB是一种流行的编程语言,它可以用来开发各种Windows应用程序。
在这个例子中,我们将看到如何使用VB编写一个简单的烟花效果。
要创建这个效果,我们需要用VB编写一些代码,以绘制烟花的形状,并在屏幕上显示它们。
我们还需要一些随机性,以使每个烟花都看起来不同。
以下是一个简单的VB程序代码,用于创建烟花效果:
Private Sub Form_Load()
Dim i As Integer
Randomize
For i = 1 To 50
With Me.Circle
.Left = Int(Rnd * Me.ScaleWidth)
.Top = Int(Rnd * Me.ScaleHeight)
.Visible = True
End With
Next i
End Sub
这个程序使用VB的随机数函数来随机生成50个烟花的位置。
它使用Me.Circle对象来绘制每个烟花,并设置其Left和Top属性来指定其位置。
最后,它设置每个烟花的Visible属性为True,以使
其在屏幕上可见。
当您运行这个程序时,您将看到50个烟花在屏幕上随机出现。
每个烟花都呈现出不同的颜色和形状,因为程序使用了VB的随机数函数来随机生成它们。
这个简单的VB程序代码可以让您开始制作自己的烟花效果。
您可以尝试修改代码来创建不同数量和形状的烟花,并尝试使用其他VB功能来调整它们的颜色和大小。
1。
求三角形的面积代码:Option ExplicitDim a!,b!,c!r,!,s!Private Sub Command1_Click()a = InputBox(”a=”, "请输入a的数值")b = InputBox(”b=", "请输入b的数值")c = InputBox("c=”, ”请输入c的数值")If a + b 〉c And a + c 〉b And b + c > a And a 〉0 And b 〉0 And c 〉0 Thenr = 1 / 2 * (a + b + c)s = Sqr(r *(r — a) * (r — b) *(r — c))Label1。
Caption = "三角形的面积为" & sElseLabel2.Caption = ”输入的数据不能构成三角形"End IfEnd Sub2.三个数排列代码:Option ExplicitDim x!,y!,z!, t!Private Sub Command1_Click()x = InputBox("输入第一个数x")y = InputBox("输入第二个数y”)z = InputBox("输入第三个数z")Print "排序前";x &”" & y &””&zIf x < y Then t = x:x = y: y = tIf y < z Thent = y: y = z: z = tIf x 〈y Thent = x:x = y: y = tEnd IfEnd IfPrint "排序后”;z & ”" &y & ”" &xEnd Sub3。
计算一元二次方程的代码:Option ExplicitDim a!,b!,c!,d!,x1!,x2!Private Sub Command1_Click()a = InputBox(”a=”, ”请输入一元二次方程的系数a")b = InputBox("b=”,”请输入一元二次方程的系数b")c = InputBox(”c=”,"请输入一元二次方程的系数c”) If a = 0 ThenPrint ”因为a≠0,你输入的a=0,请重新输入系数a" End Ifd = b ^ 2 - 4 * a * cIf d >= 0 Thenx1 = (—b + Sqr(d))/ (2 * a)x2 = (—b - Sqr(d)) / (2 * a)Print ”系数为”&a; b; c &"的一元二次方程的根分别为”& "x1=”& x1 & ”" &"x2=" &x2ElsePrint ”此方程在实数范围内无解"End IfEnd Sub4。
VB小程序设计实例引言VB(Visual Basic)是一种广泛应用于Windows平台的编程语言,它具有简单易学的特点,因此非常适合初学者入门。
本文将以一个实际的VB小程序设计实例为例,介绍如何使用VB语言进行简单的程序开发。
项目背景我们的目标是创建一个简单的VB小程序,用于管理学生信息。
该程序将允许用户添加、删除和修改学生的基本信息,例如姓名、年龄和班级。
此外,用户还可以根据特定条件检索学生信息,并显示学生列表。
设计步骤1. 创建VB项目首先,打开Visual Studio并选择“创建新项目”,然后选择“Visual Basic”作为项目类型。
接下来,选择“Windows Forms应用程序”作为模板,并给项目命名。
点击“确定”按钮以创建新的VB项目。
2. 设计用户界面在VB中,用户界面是通过拖放控件来创建的。
在“工具箱”中选择所需的控件,例如按钮、文本框和标签,并将它们放置在窗体上。
使用控件的属性面板可以更改它们的外观和行为。
3. 编写代码现在,我们需要为各个控件添加相应的事件处理程序。
例如,当用户点击一个按钮时,我们需要执行特定的操作。
首先,选择要添加事件处理程序的控件,然后在属性面板中找到“事件”部分。
在相应的事件上双击以创建并打开处理程序。
4. 实现学生信息管理功能在代码中,我们需要定义学生类和学生信息管理类。
学生类包含学生的属性,例如姓名、年龄和班级。
学生信息管理类包含对学生信息进行增删改查的方法。
我们可以使用集合类来存储学生对象,并使用LINQ进行查询操作。
在事件处理程序中调用适当的方法以实现相应的功能。
5. 运行和测试程序在完成代码的编写之后,我们可以点击“运行”按钮来启动程序。
通过与程序交互,测试各个功能是否按预期工作。
如果发现问题,可以调试程序并对代码进行调整。
6. 部署和发布程序一旦我们满意了程序的功能和性能,我们可以将程序部署和发布给其他人使用。
在Visual Studio中,选择“生成”菜单并点击“发布”选项。
vb编程代码大全Visual Basic (VB) 是一种广泛用于软件开发的高级编程语言,可以用于开发 Windows 应用程序、Web 应用程序、数据库应用程序等。
在本文中,将介绍一些常用的 VB 编程代码,帮助初学者快速入门和提高编程水平。
一、基本数据类型1. 整型数据在 VB 中,整型数据可以使用 Integer 类型表示,范围为 -32,768 到32,767。
定义整型变量的代码如下:```Dim num As Integernum = 10```2. 浮点数据浮点数据可以使用 Single 或 Double 类型表示,分别表示单精度浮点数和双精度浮点数。
定义浮点变量的代码如下:```Dim num As Singlenum = 3.143. 字符串数据字符串数据可以使用 String 类型表示,可以存储文本数据。
定义字符串变量的代码如下:```Dim str As Stringstr = "Hello, World!"```二、控制流程1. If...Then...Else 语句If...Then...Else 语句用于根据条件执行不同的代码块。
例如:```Dim num As Integernum = 10If num > 0 ThenMsgBox("Num is positive.")ElseMsgBox("Num is negative.")End If2. For 循环For 循环用于重复执行一段代码。
例如:```For i = 1 To 10MsgBox(i)Next i```3. Do While 循环Do While 循环在满足条件时执行代码块。
例如:```Dim i As Integeri = 1Do While i <= 10MsgBox(i)i = i + 1Loop```三、数组1. 一维数组一维数组在 VB 中用于存储相同类型的多个元素。
VB循环结构程序设计VB循环结构程序设计VB语言中的循环结构可以帮助我们重复执行一段代码,从而实现特定的逻辑功能。
VB提供了多种循环结构,包括For循环、While循环和Do-While循环。
For循环For循环是VB中最常用的循环结构之一。
它可以让我们在已知次数的情况下重复执行一段代码。
For循环的语法如下:vbFor [变量] = [初始值] To [结束值] [Step [步长]]' 执行的代码Next [变量]其中,`变量`用于表示循环变量,`初始值`表示循环变量的起始值,`结束值`表示循环变量的结束值,`步长`表示每次循环变量的增加或减少量(默认为1)。
以下是一个使用For循环输出1到10的代码示例:vbFor i = 1 To 10Console.WriteLine(i)Next iWhile循环While循环是另一种常用的循环结构,它能够根据条件判断重复执行一段代码,直到条件不满足为止。
While循环的语法如下:vbWhile [条件]' 执行的代码[递增或递减循环变量]End While其中,`条件`是一个逻辑表达式,只有在条件为真时才会执行循环中的代码。
以下是一个使用While循环计算1到5的总和的代码示例:vbDim i As Integer = 1Dim sum As Integer = 0While i <= 5sum += ii += 1End WhileConsole.WriteLine(sum)Do-While循环Do-While循环与While循环相似,不同之处在于它在执行循环之前先判断条件,所以至少会执行一次循环。
Do-While循环的语法如下:vbDo' 执行的代码[递增或递减循环变量]Loop While [条件]以下是一个使用Do-While循环输出1到5的代码示例:vbDim i As Integer = 1DoConsole.WriteLine(i)i += 1Loop While i <= 5循环控制语句在循环中,我们还可以使用循环控制语句来控制循环的流程。
1、重点掌握的内容:模块: 在Visual Basic中提供了三种类型的模块:窗体模块、标准模块和类模块。
标准模块、类模块和窗体模块都可包含:l l 声明。
可将常数、类型、变量和动态链接库(DLL) 过程的声明放在窗体、类或标准模块的声明部分。
l l 过程。
子过程、函数过程或者属性过程,过程包含可以作为单元来执行的代码片段。
参见7.1.1节。
过程:一个应用程序是由若干模块组成的,而每个模块又是由若干个更小的代码片段组成,将组成这些模块的代码片段称为过程(Procedure)。
Visual Basic中过程可分:函数过程、子过程、属性过程、通用过程。
子过程:子过程是在响应事件时执行的程序段。
1.子过程语法如下:[Private | Public | Friend] [Static] Sub 过程名[(参数表)][程序段][Exit Sub][程序段]End Sub2.子过程调用3.使用子过程管理输入通用过程: 通用过程告诉应用程序如何完成一项指定的任务。
一旦确定了通用过程,一般由其他过程(事件过程等)来调用。
事件过程: Visual Basic 的每一个窗体和控件都存在一个预定义的事件集。
运行应用程序时,当某个事件发生,而且在与该事件关联的事件过程中存在代码,则Visual Basic就会调用该事件过程。
因为事件过程的过程名在对象和代码之间建立了联系,所以可以说事件过程是附加在窗体和控件上的。
Function 过程:1 .函数过程的语法[Public | Private | Friend] [Static] Function Name [(Arglist)] [As 数据类型][程序段][Name = Expression][Exit Function][程序段][Name = Expression]End Function与Sub 过程一样,Function 过程也是一个独立的过程,可读取参数、执行一系列语句并改变其参数的值。
与子过程不同,Function 过程可返回一个值到调用的过程。
Sub 过程与Function 过程的区别:参见7.2.3节。
调用过程:调用Sub 过程与Function 过程不同。
在表达式中,调用Sub 过程的是一个独立的语句,而调用函数过程函数过程只是表达式的一部分。
Sub 过程还有一点与函数不一样,它不会用名字返回一个值。
但是,与Function过程一样,Sub 过程也可以修改传递给它们的任何变量的值。
调用Sub 过程有两种方法:以下两个语句都调用了名为MyProc 的Sub 过程。
Call MyProc (FirstArgument, SecondArgument)MyProc FirstArgument, SecondArgument注意当使用Call 语法时,参数必须在括号内。
若省略Call 关键字,则也必须省略参数两边的括号。
通常,调用自行编写的函数过程的方法和调用Visual Basic 内部函数过程(例如Abs)的方法一样;即在表达式中写上它的名字。
请详细参考7.3节2、一般掌握内容:程序的调试: 参考7.4节在Visual Basic6.0中的错误分为三种类型:l l 语法错误l l 执行错误l l 逻辑错误第7章VB应用程序结构[学习目标]1:掌握:Sub过程,Function过程、Event过程和通用过程2. 理解:VB应用程序的结构3:了解:程序调试技术[学习要点]模块,过程,程序调试本章主要介绍编写应用程序的各种部件和模块、代码编写机制和编码基础等,理解这些基本内容之后,才能用VB编写出功能强大的应用程序。
一个应用程序实际上是使计算机完成特定任务的指令集。
应用程序的结构就是指组织指令的方法,也就是指令存放的位置以及它们的执行顺序。
7.1 模块VB的代码存储在模块中。
在VB中提供了三种类型的模块:窗体模块、标准模块和类模块。
简单的应用程序可以只有一个窗体,所用的程序都驻留在窗体模块中,而当应用程序庞大复杂时,就要另外附加窗体。
最终可能有几个窗体中有一些共同都要执行的代码,为了在两个窗体中不产生重复代码,可创建一个独立的模块,用它实现代码公用。
该独立模块即是标准模块。
此外还可以建立包含共享代码与数据的类模块。
每个标准模块、类模块和窗体模块可包含:声明。
可将常数、类型、变量和动态链接库(DLL)过程的声明放在窗体、类或标准模块的声明部分。
每个模块只有一个声明部分过程。
每个模块可有多个过程,过程是划分VB代码的最小单元,每个过程是一个可执行的代码片段。
VB中主要有子过程、函数过程或者属性过程等7.1.1 各种模块类型1.窗体模块由于VB是面向对象的应用程序开发工具,所以应用程序的代码结构就是该程序在屏幕上表示的对应模型。
根据定交,对象包含数据和代码。
应用程序中的每个窗体都有一个相对应的窗体模块(文件扩展名为.frm)窗体模块是VB应用程序的基础。
窗体模块可以包含处理事件的过程、通用过程以及变量、常数、自定义类型和外部过程的窗体级声明。
写入窗体模块的代码是该窗体所属的具体应用程序专用的;也可以引用该程序内的其它窗体和对象每个窗体模块都包含事件过程,在事件过程中有为响应该事件而执行的程序段。
窗体可包含控件。
在窗体模块中,对窗体上的每个控件都有一个对应的事件过程集。
除了事件过程,窗体模块还可包含通用过程,它对来自该窗体中任何事件过程的调用都作出响应。
2.标准模块标准模块是程序中的一个独立容器,包含全局变量、Function(函数)过程和Sub过程(子过程)。
可将那些与特定窗体或控件无关的代码放入标准模块中。
标准模块中包含应用程序内的允许其它模块访问的过程和声明。
它们可以包含变量、常数、类型、外部过程和全局声明或模块级声明。
写入标准模块的代码不必固定在特定的应用程序上;(1)使用标准模块在编写程序时,很可能会遇到一些使用相同变量和例程的窗体和事件过程。
在缺省状态下,变量对于事件过程来说是局部的,就是说仅能在创建这些变量的事件过程中读取或者修改变量。
与之相似,事件过程对于创建它们的窗体来说也是局部。
为了在工程中的所有窗体和事件中共享变量和过程,需要在该工程的一个或多个标准模块中对它们进行声明和定义。
标准模块或代码模块是具有文件扩展名.bas,并包含能够在程序任何地方使用的变量和过程的特殊文件。
正如窗体一样,标准模块被单独列在Project(工程)窗口内,并可通过使用File(文件)菜单中的Save Modulel As菜单项存盘。
但是,与窗体不同,标准模块不包含对象或属性设置而只包含可在代码窗口中显示和编辑的代码。
(2)创建标准模块如要在程序中创建新的标准模块,那么单击工具条Add Form(添加窗体)按钮上的下箭头并单击Mode(模块),或者单击Project(工程)菜单中的Add Module(添加模块)菜单项。
在工程中创建一个空的标准模块的步骤如下:S1:启动VB,打开一个新的标准工程,单击工程菜单中的Add Module菜单项,单击Open 按钮。
VB在工程中增加一个名为Module 的标准模块。
该模块对应的代码窗口被打开,对象和过程列表框的内容表明该标准模块的通用声明已被打开。
在此所声明的变量与过程在整个程序都可以使用。
S2:双击工程资源管理器窗口的标题条,以便能看到整个工程资源管理器窗口,S3:在File(文件)菜单中,单击Save Modulel AsS4:如果D:\VB6sbs\less10文件夹未被选择时,选择该文件夹,键入MyTestMod.bas,然后按回车。
该标准模块作为MyTestMod.bas文件保存到磁盘,并且可以通过Project(工程)的Add File菜单项可将此文件通过其文件名加载到另一个工程中。
S5:双击Project(属性)窗口标题条。
由于模块不包含对象,因此它惟一的属性就是NameS6:将Name属性改为modVariables,然后按ENTER键。
(3)声明公用变量在标准模块中声明全局变量十分简单,键入关键字Public,后跟该变量名。
缺省状态下,公用就量在模块中被声明为变体类型,但是可以通过使用As关键字来指定相应类型,可以把公用变量声明为某个指定的基本类型。
3.类模块在VB中类模块是面向对象编程的基础。
可以在类模块中编写代码建立新对象。
这些新对象可以包含自定义的属性和方法。
实际上,窗体正是这样一种类模块,在其上可安放控件,可显示窗体窗口用类模块创建对象,这些对象可被应用程序内的过程调用。
标准模块只包含代码,而类模块包含代码又包含数据,可视为没有物理表示的控件。
7.1.2模块设计的考虑在VB中创建应用程序的最重要的部分是设计阶段。
首先需要为应用程序设计一个用户界面,这个界面的设计比较容易确定。
但设计代码的结构就是一项较复杂的工作。
构造应用程序的方法不同,可能会造成应用程序的性能以及代码的可维护性,可使用性不同。
VB应用程序呈层次结构。
典型应用程序包括若干个模块:应用程序中每个窗体的窗体模块、共享代码的标准模块和类模块。
每个模块包含若干含有代码的过程:Event过程,Sub过程或Function过程及Property过程。
在很多情况中都存在着多个对象共享的重复过程。
这种情况最好创建一个共享的子过程,使大家都可以调用它。
即使将来修改这些子程序,则只在一个地方修改就可进行全部修改,这将大大提高程序的可读性和可维护性。
可以把所有的共享操作放在标准的模块中。
7.1.3 代码编辑器VB代码编辑器是一个窗口,大多数代码都在此窗口上编写。
有许多便于编写VB代码的功能。
在每个模块中,对于模块中包含的每个对象,将模块中的代码再细分出与对象对应的独立部分用"对象列表框"实现各对象间的切换。
对于模块,列表包含一个通用段和一个类段;对于标准模块,只有一个通用段被显示。
每一段代码都可包含若干个用"过程列表框"访问的不同过程。
对窗体或控件的每一个事件过程,窗体模块的过程列表都包含一个独立的段。
类模块只列举本身的事件从初始化到终止。
标准模块的过程列举任何事件过程,因为标准模块不支持事件。
模块通用段的过程列表只包含声明段,其中放置模块级的变量、常数和DLL声明VB代码编辑器的一些功能和用法:1.自动完成编码VB能自动填充语句、属性和参数,这些性能使编写代码更加方便。
在输入代码时,编辑器列举适当的选择。
通过"工具"菜单上的"选项"命令访问"选项"对话框,在"选项"对话框的"编辑器"选项卡上可以选择"自动列出成员特性",由它们决定是允许还禁止代各码的设置值。