• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[老狼] [老狼][源码分享]----Dim、Global、DimEnv----匆匆十年(59) [复制链接]

1#
变量的区分:

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

本主题由 超级版主 瑞祥幽冥狼 于 2022/6/13 22:01:44 执行 审核帖子 操作
收 徒 索 引 ← ← ← ← ← ← ← ← ← ← 点 击

个 人 Q Q 1 : 1 2 2 3 1 1 6 6 1 8[将满]
个 人 Q Q 2 : 6 1 7 0 9 5 5 4 3[可加]
2#


3#


4#

好好学习天天向上

5#

必須來學習

6#

DIM 再主程序聲明 應該是全局
在子程序聲明是局部

点评

瑞祥幽冥狼  注:要么都Dim,要么都不Dim;如果都Dim,他只属于主程序、 Sub、Function分别独有,理论上主程序也只能算局部  发表于 2022/6/5 17:34:43

7#

学习

8#


9#

学习使我快乐11111

10#

看看

11#


12#

谁与美人共枕夕阳长醉两千年

13#

我要看看特殊环境

14#

为了看贴

15#

kakakk

16#

学习学些

17#

大佬就是大佬

18#


19#

爱仕达奥所多

20#

谢谢分享

发新话题 回复该主题