// 导入 win.ui 库,用于创建图形界面
import win.ui;
/*DSG{{*/
// 创建一个窗口,窗口标题为 "可启用、禁用、调整时间隔的定时管理器"
var winform = win.form(text="可启用、禁用、调整时间隔的定时管理器";right=412;bottom=198;parent=...)
// 在窗口中添加控件
winform.add(
// 创建一个按钮,用于禁用定时器
btnDisable={cls="button";text="禁用定时器";left=221;top=62;right=375;bottom=97;z=3};
// 创建一个按钮,用于启用定时器
btnEnable={cls="button";text="启用定时器";left=36;top=63;right=190;bottom=98;z=1};
// 创建一个标签,显示最大间隔时间
lbIntervalMax={cls="static";text="间隔1000毫秒";left=286;top=121;right=373;bottom=135;align="right";transparent=1;z=6};
// 创建一个标签,显示最小间隔时间
lbIntervalMin={cls="static";text="间隔1毫秒";left=40;top=120;right=103;bottom=135;transparent=1;z=5};
// 创建一个静态文本,用于显示当前时间
static={cls="static";text="...........";left=39;top=19;right=375;bottom=50;center=1;nWrap=1;transparent=1;z=2};
// 创建一个滑块,用于调整定时器的间隔时间
trackbar={cls="trackbar";left=26;top=136;right=383;bottom=166;max=1000;min=1;z=4}
)
/*}}*/
// 导入 win.timer 库,用于创建和管理定时器
import win.timer
// 创建一个定时器对象,关联到 winform 窗口
var timer = win.timer( winform );
/*
设置定时器触发函数,当定时器触发时,更新静态文本显示当前时间
在 timer.onTimer 函数中,参数分别代表以下含义
hwnd: 窗口句柄,用于标识窗口。
msg: 消息类型,表示触发定时器的具体消息。
id: 定时器ID,用于标识定时器。
tick: 定时器触发时的时间戳,表示自某个起始点(通常是程序开始运行时)以来的毫秒数。
*/
timer.onTimer = function(hwnd,msg,id,tick){
winform.static.text = time.tick();
}
// 禁用定时器的按钮点击事件
winform.btnDisable.oncommand = function(id,event){
timer.disable()
}
// 启用定时器的按钮点击事件
winform.btnEnable.oncommand = function(id,event){
timer.enable();
}
// 设置滑块的频率,即定时器的间隔时间
winform.trackbar.setFrequency(10)
/*
滑块位置变化时,更新定时器的间隔时间
在 winform.trackbar.oncommand 函数中,参数的含义如下:
id: 控件ID,用于标识触发事件的控件。
event: 事件类型,表示触发的事件。
pos: 位置参数,如果设置为 true,表示滑块的位置发生了变化,此时会调用 timer.setInterval(pos) 来更新定时器的间隔时间。
*/
winform.trackbar.oncommand = function(id,event,pos){
if( pos ){
timer.setInterval(pos)
}
}
// 显示窗口
winform.show()
// 启动消息循环,处理窗口事件
win.loopMessage();