本文以 预览本机字体 来演示aardio的HTMLayout列表控件动态添加列表项。

<widget>标签支持 height:100%%; 这种两个百分号的写法,<select>标签不支持。

动态设置元素字体的时候字体名字要用两个’\“‘双引号把字体名字括起来,不然不会生效。如下

ele.style["font-family"]='\"'+fullname+'\"';

使用Htmlayout做界面是很不错的选择!! ^_^

源代码如下:

import win.ui;
import win.font;
/*DSG{{*/
var winform = win.form(text="HTMLayout列表框 - aardio编程学习";right=599;bottom=399;maxmize=1;parent=...)
winform.add()
/*}}*/

import web.layout;
wbLayout = web.layout( winform )

wbLayout.html = /**
<html>
<body>
<widget type="select" id="fontlist">

</widget>
</body>
</html>
**/

wbLayout.css = /**
widget#fontlist {
width:100%%;
height:100%%;
}
widget#fontlist option{
height:30px;
font-size:25px;
margin:2px 0px;
border:1px dotted green;
}
**/

//枚举本机包含GB2312的字体
win.font.enum(
function(logfont,fullname,ftype,style,script,lpntme){
if( ftype == 0x4/*_TRUETYPE_FONTTYPE*/ && fullname[1] != '@'#/*翻转90度字体*/ ){

//创建一个option元素
var ele = wbLayout.createEle("option","字体名称:"++fullname++" 学习aardio编程语言!123456789 www.aardio.com");
//将创建的元素ele追加到id="fontlist"的widget元素中
wbLayout.getEle("fontlist").append(ele);
//设置新建的option元素的字体
ele.style["font-family"]='\"'+fullname+'\"';

}
},{ charset = 0x86/*_GB2312_CHARSET*/; name = "" }
)

winform.show()
win.loopMessage();