aardio 文档

aardio 范例: listview 简单加载动画

import win.ui;
/*DSG{{*/
var winform = win.form(text="listview 简单加载动画";right=688;bottom=303;max=false)
winform.add(
button={cls="button";text="停止动画";left=343;top=244;right=531;bottom=282;z=2};
listview={cls="listview";left=18;top=20;right=664;bottom=232;bgcolor=0xFFFFFF;edge=1;z=1}
)
/*}}*/

winform.listview.columns = [ 
    ["标题",150],
    ["状态",-1/*自适应宽度*/]
]

winform.listview.items = [["测试项目",""],["测试项目2",""]] //二维数组

//在 listview 里用纯文本模仿进度条效果
function textProgressBar(current, total, length = 20){
    var percent = current / total;
    var filled = math.floor(length * percent);
    var bar = string.repeat(filled,"▓") + string.repeat(length - filled,"░");

    return string.format(percent<10?'%s %.1f%%':'%s %.0f%%', bar, percent * 100);
}

winform.listview.reduce(
    ["✶";"✸";"✹";"✺";"✹";"✷"],
    function(value,index,length,currentTime){
        if(value){
            winform.listview.setItemText(value + " 正在处理当前项",1,2);
        }

        return 150;
    } 
)

winform.button.oncommand = function(id,event){
    winform.listview.reduce(false);
    winform.listview.setItemText("✓ 已完成",1,2);
}

//避免 listview 控件频繁刷新时闪烁
winform.listview.enableDoubleBuffering();

winform.show() 
win.loopMessage();
Markdown 格式