变量的区分:
- [不定义]类Global,变量修改互相影响
- [Dim]局部变量(在子程序、函数中声明,作用域为当前过程,变量修改互不影响)
- [Global]全局变量(在主程序中声明,作用域为当前脚本的主、子程序、函数,但不包含多线程)
- [DimEnv]环境变量(在主程序中声明,作用域为多个脚本的界面过程,主、子程序、函数,及多线程)
如何定义变量注:主程序以下简称主、子程序以下简称子、函数[Function]以下简称函、多线程[BeginThread]以下简称多不定义:- Var = 1'多无法读取;主、子、函可读取
- TracePrint Var'主可读取
- Call 子程序()
- TracePrint 函数()
- 线程ID = BeginThread(多线程)
- Sub 多线程()
- TracePrint Var'多无法读取
- End Sub
- Sub 子程序()
- TracePrint Var'子可读取
- End Sub
- Function 函数()
- TracePrint Var'函可读取
- End Function
复制代码 Dim[主程序声明、Sub、Function内不声明][变量重新赋值互相影响]:- Dim 线程ID
- Dim Var
- Var = 1'多无法读取;主、子、函可读取
- TracePrint Var'主可读取
- Call 子程序()
- TracePrint 函数()
- 线程ID = BeginThread(多线程)
- Sub 多线程()
- TracePrint Var'多无法读取
- End Sub
- Sub 子程序()
- TracePrint Var'子可读取
- End Sub
- Function 函数()
- TracePrint Var'函可读取
- End Function
- Dim Var1,Var2'在一行定义多个常量。
- Var2 = 2
- TracePrint Var2
复制代码 Dim[主程序声明或不声明;Sub、Function内声明[变量赋值互不影响]]- Dim Var
- Var = 1'不Dim主、子、函可读取,如果Dim 只有主可读取
- TracePrint Var
- Call 子程序()
- TracePrint 函数()
- TracePrint Var
- Sub 子程序()
- TracePrint Var
- Dim Var
- Var = 2
- TracePrint Var'Sub 内独立存在 Sub结束变量清空
- End Sub
- Function 函数()
- TracePrint Var
- Dim Var
- Var =3
- TracePrint Var'Function内独立存在 Sub结束变量清空
- End Function
复制代码 定义多个变量- Dim Var1, Var2'一行定义多少个变量
- Var2 = 1
- TracePrint Var2
复制代码 GlobalDimEnv[变量]- DimEnv Var'设置为环境变量,所有位置均可读取到
- Var = 1
- TracePrint Var'主可读取
- Call 子程序()
- TracePrint 函数()
- 线程ID = BeginThread(多线程)
- Sub 多线程()
- TracePrint Var'多可读取
- End Sub
- Sub 子程序()
- TracePrint Var'子可读取
- End Sub
- Function 函数()
- TracePrint Var'函可读取
- End Function
复制代码 DimEnv[数组]- DimEnv Var(3)
- Var(0) = 1
- TracePrint Var(0)'主可读取
- Call 子程序()
- TracePrint 函数()
- 线程ID = BeginThread(多线程)
- Sub 多线程()
- TracePrint Var(0)'多可读取
- End Sub
- Sub 子程序()
- TracePrint Var(0)'子可读取
- End Sub
- Function 函数()
- TracePrint Var(0)'函可读取
- End Function
复制代码 Const 常数- Const MyVar = 459
- TracePrint MyVar
- MyVar=1'将提示非法赋值: 'MYVAR', 常数不会象变量那样无意中被改变
复制代码 Set- Set dm = createobject("dm.dmsoft")'将对象引用赋给变量或属性
复制代码 Redim Preserve 动态数组- Dim arr(), i
- For i = 0 To 9
- Redim Preserve arr(i)
- arr(i) = 0
- TracePrint UBound(arr)
- Next
- TracePrint Join(arr, "|")
复制代码 特殊环境变量设置'对环境变量赋值 返回true表示成功 等同于BianLiangMing = 1000
TracePrint SetEnv("BianLiangMing", 1000)
BeginThread 多线程
Sub 多线程()
'读取环境变量的值 返回读取到的值 等同于 tmp = BianLiangMing : TracePrint tmp
TracePrint GetEnv("BianLiangMing")
End Sub
注意事项: QUI界面控件禁止频繁写入、读取,环境变量可能引起界面崩溃(可采用ini、txt等方式进行值传递)