aardio 文档
aardio 范例: 窗口程序 - 使用自定义控件创建子窗体容器
//窗口程序 - 使用自定义控件创建子窗体容器
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add(
button1={cls="button";text="切换窗口 frmChild1";left=366;top=418;right=525;bottom=459;db=1;dr=1;z=2};
button2={cls="button";text="切换窗口 frmChild2";left=534;top=418;right=693;bottom=459;db=1;dr=1;z=3};
custom={cls="custom";text="自定义控件";left=21;top=14;right=741;bottom=380;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/
/*
我们可以使用 winform.custom.loadForm( path ) 加载窗口。
aardio 会自动将窗口加载为 winform.custom 的子窗口。
每次调用 winform.custom.loadForm( path )都会加载窗体代码并返回新的子窗体对象。
winform.custom 会成为容器管理所有加载的子窗口数组。
规则如下:
1、当显示一个子窗口,其他子窗口就会自动隐藏。
2、调用 winform.custom.loadForm( path ) 并不会释放之前加载的其他子窗体,而仅仅是隐藏他们。
2、当关闭一个子窗口,他就会自动从 custom 控件容器的子窗口数组中移除。
*/
var frmChild1 = winform.custom.loadForm("/.res/frmChild1.aardio")
winform.button1.oncommand = function(id,event){
frmChild1.show();
}
var frmChild2 = winform.custom.loadForm("/.res/frmChild2.aardio")
winform.button2.oncommand = function(id,event){
frmChild2.show();
/*
如果在函数内部调用 winform.custom.loadForm("/.res/frmChild2.aardio")
又不关闭以前加载的子窗口,就会导致每点击一次都加载一个新的窗口,
且并没有释放之前的窗口( 他们之是被隐藏了 )。
所以我们并不需要在这里重复加载同一窗体文件,只要简单的显示他就可以了。
*/
}
/*
标准库 win.ui.tabs 实现的「高级选项卡就会自动查找附近合适的 custom 控件作为子窗口容器。
*/
winform.show();
win.loopMessage();
return winform;
Markdown 格式