VB6备忘录(3)控制流程

来源:互联网 发布:淘宝药店哪家好 编辑:程序博客网 时间:2024/06/06 12:31

尽管是事件驱动,但仍要控制流程。主要三种:

          顺序结构

          选择结构

          循环结构

重点是循环结构。



dim a as integer

a=val(text1.text)    '  val(string)    将数据字串(可以是八进制或十六进制数)转为数据型

dim b as string

b=inputbox("请输入“)    ’ 返回值是string型,若取消则返回为”“即空串。

输出:

   msgbox("信息”)    返回值为integer ,代表是按的某键返回

   print    在所有者上显示(打印),省略时指的是窗体,debug指的是即时窗体

             print "窗体上显示  "

             picture1.print  "在图片框上显示"

             printer.print     "在打印机上打印“

            两个特殊:tab(N)注意这不是tab(4个空格),而是打印起始点。表示打印的起始点。外观看起来相当于一个空格(字符)位置。

                                      在多个表达式时,显示效果与MSDN描述不同:

                                           当在第一个表达式中出现,则按tab进行控制,当N大于行显时,按对行字符取模显示

                                            当在后面表达式中时,无论是,还是;都会直接换行,按N点控制进行显示。大于行显时,按第一处理。

                                space(N)表示几个空格。

                                           print   33;tab(3);77   ’第一行显示33,然后换行,在第3个字符处显示77

                                 可用,和;对多个表达式进行显示, ","表示下一个表达式间隔14个字符,";"表示下一个表达式间隔2个字符。

                                        Print 1; Space(2); 3     ‘  间隔4个空格,因;占两上,space占2个,共4个

                                 无表达式时,直接打印一空行,为boolean时打印True或False,空值时打印NULL(与空串不同)

                                


if  ...  then ....

if ....  then

    ....

end if

判断类型: Typeof   对象   Is  对象类型      返回逻辑值(真或假)

Dim a As ControlFor Each a In Form1.Controls    If TypeOf a Is TextBox Then        a.ForeColor = vbRed    End IfNext

判断是否为数值: IsNumeric(Variant)

                               表达式为不定型(变体型),若为数值则为真,否则假。特殊:日期型时返回为假。

                           Const a As Date = #2/22/2003#
                           MsgBox (IsNumeric(a))    '信息为False

基础类型怎么判断类型呢?

VarType(VarName)      返回值是Integer,代表各基础类型。其中数组是数组返回值+基础类型值


end  终极强制停止程序停止(退出)

exit sub/do/for/function  退出当前的子程序/循环/函数

unload object     卸载对象,以便回收内存。

             当为卸载窗体时,会先Query_Form,然后Form_Unload,这样主要是要保护窗体中的数据,免得生硬的卸载了窗体。

            当是MDIForm时,会先所有子窗体请求卸载后,再是主窗体。

            注意:unload只是显示的部分被卸载,但相关的代码仍在内存中。(在form2中设置一个Public变量,当form2卸载后,仍可在form1中显示form2中的公用变量)

                        另外对于控件,只有运行时添加的控件才可以unload,否则出错。


IIF函数: IIF(逻辑表达式,真时返回结果,假时返回结果)    

                  print IIF(88>66,777,222)   '为真,用777,故窗体上显示777



分支选择结构

select    case   表达式

case  值

       。。。。

case else

       ..........

end select

值 可以是一个表达式,亦可多个表达式,之间用,进行间隔,表示条件or,注意不是and

       case   Is  >0,Is  <22               大于0或者小于22

      注意:表达式中可以用单个值,也可以是连续值,还可是逻辑表达式, 主要是Is和To

                  Is用于逻辑表达,如>=,<>等,但只能一个单一的逻辑表达式,不能是复杂的,如 Is >0 and Is<22这种是错误的

                  To表示连接的之间的值,如 case  2 To  6,9   ,注意用To只能是小值在前,大值在后。

        当条件值中是字串时,case中实际值还应用字串(引号)



for start  to  end  step N

      ....

      exit for

end counter

注意:步长默认为1,step可正可负,可小数,此时应匹配计数器为相应类型。如果计数器为整形,步长为小数,就可能出现死循环。

            因为VB会自动隐形转为整形时,可能保持计数器不变,就死循环了。




while   条件     ‘ 条件为真时执行内部语句,为假时跳出语句

      。。。。

wend          '  while end之意



for each  element  in group    ' group可能是数组或集合,element在数组时,只能是Variant变量,因此元素不能用于自定义类型(type)

     .......

     exit for

next element

例:

Dim a As Variant  '若声明为与数组匹配的Integer将出错,必须声明为Variant
Dim b(10) As Integer
For Each a In b()
    Print a
Next a



先判断后执行

do(while/untill) 条件  ‘ while当循环,为真执行下面;untill直循环,为假执行,为真跳出。

      。。。。

      exit do

loop

先执行后判断

do  条件

     。。。。

    exit do

loop(while/untill)  条件



with 省略写法

with object

      属性或成员值

      。。。

end with

注意:一次只能省略一个对象前缀,多个时,须嵌套使用

with form1

       .forecolor=vbred

       with  text1

                .text="asd"

        end with

end with