aardio - 多个组件事件共用一个函数

多个组件事件共用一个函数,函数内部通过owner识别组件主体对象。

 

对于大量性质相同的组件处理时非常有效。

效果:

代码:

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=296;bottom=286)
winform.add(
checkbox={cls="checkbox";text="Checkbox";left=95;top=80;right=175;bottom=122;z=1};
checkbox2={cls="checkbox";text="Checkbox";left=95;top=119;right=175;bottom=148;z=2};
checkbox3={cls="checkbox";text="Checkbox";left=95;top=157;right=175;bottom=185;z=3};
checkbox4={cls="checkbox";text="Checkbox";left=96;top=197;right=176;bottom=215;z=4};
checkbox5={cls="checkbox";text="Checkbox";left=97;top=234;right=177;bottom=256;z=5};
edit={cls="edit";text="Edit";left=16;top=22;right=284;bottom=57;edge=1;multiline=1;z=6}
)
/*}}*/

var chks = {}

checkcommand = function(id,event){
	chks[""++id] = owner.checked:null
	winform.edit.text=..string.join(..table.keys(chks),",")
}

winform.checkbox.oncommand = checkcommand
winform.checkbox2.oncommand = checkcommand
winform.checkbox3.oncommand = checkcommand
winform.checkbox4.oncommand = checkcommand
winform.checkbox5.oncommand = checkcommand

winform.show();
win.loopMessage();

 看明白以上代码后,可以将其处理的更简洁一点:

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=296;bottom=286)
winform.add(
checkbox={cls="checkbox";text="Checkbox";left=95;top=80;right=175;bottom=122;z=1};
checkbox2={cls="checkbox";text="Checkbox";left=95;top=119;right=175;bottom=148;z=2};
checkbox3={cls="checkbox";text="Checkbox";left=95;top=157;right=175;bottom=185;z=3};
checkbox4={cls="checkbox";text="Checkbox";left=96;top=197;right=176;bottom=215;z=4};
checkbox5={cls="checkbox";text="Checkbox";left=97;top=234;right=177;bottom=256;z=5};
edit={cls="edit";text="Edit";left=16;top=22;right=284;bottom=57;edge=1;multiline=1;z=6}
)
/*}}*/

var chks = {}

for(hwnd,ctrl in winform.eachControlEx("checkbox") ){
	ctrl.oncommand = function(id,event){
    	chks[""++id] = owner.checked:null
	    winform.edit.text=..string.join(..table.keys(chks),",")
    }
}

winform.show();
win.loopMessage();

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢光庆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值