.版本 2
.支持库 iext2
.支持库 spec
.支持库 eAPI
.程序集 窗口程序集1
.程序集变量 初始宽度, 整数型
.程序集变量 按钮组, 超级按钮, , "0"
.子程序 滑动特效
.参数 索引, 整数型
.局部变量 i, 整数型
.局部变量 k, 整数型
.如果真 (按钮组 [取数组成员数 (按钮组)].宽度 = 100 且 按钮组 [取数组成员数 (按钮组)].左边 = 300) ' 初始情况
.计次循环首 (20, i)
按钮组 [索引].宽度 = 初始宽度 + i
.计次循环首 (取数组成员数 (按钮组) - 索引, k)
按钮组 [索引 + k].左边 = 按钮组 [索引 + k - 1].左边 + 按钮组 [索引 + k - 1].宽度 + 1
.计次循环尾 ()
延迟 (1)
.计次循环尾 ()
刷新布局 (索引)
返回 ()
.如果真结束
.如果真 (索引 = 1) ' 鼠标在第一个按钮上
.计次循环首 (20, i)
按钮组 [索引].宽度 = 初始宽度 + i
按钮组 [索引 + 1].宽度 = 按钮组 [索引 + 1].宽度 - 1
按钮组 [索引 + 1].左边 = 按钮组 [索引].左边 + 按钮组 [索引].宽度
延迟 (1)
.计次循环尾 ()
刷新布局 (索引)
返回 ()
.如果真结束
.如果真 (索引 = 取数组成员数 (按钮组)) ' 鼠标在最后一个按钮上
.计次循环首 (20, i)
按钮组 [索引].宽度 = 初始宽度 + i
按钮组 [索引].左边 = 按钮组 [索引].左边 - 1
按钮组 [索引 - 1].宽度 = 按钮组 [索引 - 1].宽度 - 1
延迟 (1)
.计次循环尾 ()
刷新布局 (索引)
返回 ()
.如果真结束
.如果 (按钮组 [索引 + 1].宽度 > 100)
.计次循环首 (20, i) ' 后面一个按钮展开了,执行这段代码
按钮组 [索引].宽度 = 初始宽度 + i
按钮组 [索引 + 1].宽度 = 按钮组 [索引 + 1].宽度 - 1
按钮组 [索引 + 1].左边 = 按钮组 [索引].左边 + 按钮组 [索引].宽度
延迟 (1)
.计次循环尾 ()
.否则
.计次循环首 (20, i) ' 前面一个按钮展开了,执行这段代码
按钮组 [索引].宽度 = 初始宽度 + i
按钮组 [索引].左边 = 按钮组 [索引].左边 - 1
按钮组 [索引 - 1].宽度 = 按钮组 [索引 - 1].宽度 - 1
延迟 (1)
.计次循环尾 ()
.如果结束
刷新布局 (索引)
.子程序 高精度等待
.参数 微秒, 整数型, , 1000微秒 = 1毫秒 ; 1000毫秒 = 1秒
.局部变量 hTimer, 整数型
.局部变量 int64, LARGE_INTEGER
' int64.QuadPart = -10 × 微秒
' hTimer = CreateWaitableTimerA (0, 假, 0)
' SetWaitableTimer (hTimer, int64, 0, 0, 0, 假)
.' 判断循环首 (MsgWaitForMultipleObjects (1, hTimer, 假, -1, 255) ≠ 0)
' 处理事件 ()
.' 判断循环尾 ()
' CloseHandle (hTimer)
.子程序 归原
.参数 索引, 整数型
.局部变量 i, 整数型
.局部变量 k, 整数型
.计次循环首 (20, i)
.如果真 (按钮组 [索引].宽度 > 100)
按钮组 [索引].宽度 = 按钮组 [索引].宽度 - 1
.计次循环首 (取数组成员数 (按钮组) - 索引, k)
按钮组 [索引 + k].左边 = 按钮组 [索引 + k].左边 - 1
.计次循环尾 ()
.如果真结束
.计次循环尾 ()
按钮组 [索引].宽度 = 100
.子程序 刷新布局
.参数 索引, 整数型
.局部变量 i, 整数型
.局部变量 b, 整数型
.局部变量 按钮左边, 整数型
.计次循环首 (取数组成员数 (按钮组), i)
按钮左边 = 0
.计次循环首 (i - 1, b)
按钮左边 = 按钮左边 + 按钮组 [b].宽度
.计次循环尾 ()
.如果 (i = 索引)
按钮组 [i].宽度 = 120
.否则
按钮组 [i].宽度 = 100
.如果结束
按钮组 [i].左边 = 按钮左边
.计次循环尾 ()
.子程序 __启动窗口_创建完毕
加入成员 (按钮组, 超级按钮1)
加入成员 (按钮组, 超级按钮2)
加入成员 (按钮组, 超级按钮3)
加入成员 (按钮组, 超级按钮4)
初始宽度 = 100
' 这里有三个按钮,我把鼠标放在
.子程序 _时钟1_周期事件
.局部变量 当前句柄, 整数型
.局部变量 i, 整数型
当前句柄 = 取鼠标所在窗口句柄 ()
.计次循环首 (取数组成员数 (按钮组), i)
.如果真 (当前句柄 = 按钮组 [i].取窗口句柄 () 且 按钮组 [i].宽度 = 100)
时钟1.时钟周期 = 0
滑动特效 (i)
时钟1.时钟周期 = 65
返回 ()
.如果真结束
.如果真 (当前句柄 = 按钮组 [i].取窗口句柄 ())
返回 ()
.如果真结束
.计次循环尾 ()
.计次循环首 (取数组成员数 (按钮组), i)
.如果真 (按钮组 [i].宽度 = 120)
归原 (i)
返回 ()
.如果真结束
.计次循环尾 ()