光庆大佬的toolbar库解决了我长时间困扰的一个大问题,我对它作了适用自己问题的一个小改动。
但我对多线程是个一窍不通的菜鸟,在问题中一旦我要加载的符号多了,就很慢,想用多线程加载,但完全不会。请大佬指导。。。
import win.ui;
import godking.vlistEx;
import win.clip;
import godking.vlistEx.toolbar2
/*DSG{{*/
var winform = win.form(text="aardio form";right=824;bottom=562;border="dialog frame";max=false)
winform.add(
vlistEx={cls="vlistEx";text="自定义控件";left=109;top=8;right=267;bottom=188;border=1;z=1}
staticSel={cls="static";left=116;top=389;right=185;bottom=458;align="center";bgcolor=16776958;border=1;center=1;font=LOGFONT(h=-55);z=11};
)
/*}}*/
// 创建实例模板
var toolbar = godking.vlistEx.toolbar2(winform.vlistEx,{
bkcolor = 0xF1F1F1; /*背景颜色*/
bkimage = null;
cellwidth = 35; /*单元格宽度*/
cellheight = 35; /*单元格高度*/
imgpadding = 0;
textpadding = 1;
font={name="Segoe UI Symbol",h=24,color=0xFF000000}; /*正常字体*/
hoverfont={name="Segoe UI Symbol",h=26,weight=500;color=0xFF070DFF}; /*鼠标划过字体*/
lineColorH = 0xf1f1f1;
lineColorV = 0xffffff;
})
// 添加图片
import inet.http
import godking.paint
var imgs = godking.paint.splitImage("\背景2.png",3,3,0,0,0,0);
for(i=1;#imgs;1){
toolbar.addImg("img"++i/*图片名称*/,imgs[i]/*图片数据*/);
}
Rows=100;//全部符号的行数,太多刷新慢
Cols=20;//列数
//全部符号
winform.qbFH=function(){
var t = {}
import string.html;
for(j=0;Rows-1;1){
var tt={}
for(k=1;Cols;1){
ss=j*Cols+k;
txt="img1|img2|"++string.html.toText("&#"++ss++";");//许多字符可能会因系统问题不能显示
..table.push(tt,txt)
}
..table.push(t,tt)
toolbar.setItemList(t);
}
winform.vlistEx.width += winform.vlistEx.scrollbarWidth;
winform.vlistEx.hideScroll(true/*隐藏横向滚动条*/,false/*隐藏纵向滚动条*/,false/*禁用滚轮和键盘滚动*/)
//设置合适的表格高度,刚好容纳10行。
winform.vlistEx.fitHeight(10);
//设置合适的表格宽度,刚好容纳所有列。
winform.vlistEx.fitWidth();
}
winform.qbFH();
// 定义点击事件
toolbar.onClick = function(row/*行号*/,col/*列号*/,text/*项目文本*/){
if text===null or text==="" or text===" " return ;
//winform.text="您点击了第"++row++"行第"++col++"个:"++text;
winform.staticSel.text=text;//=chrcodeTostr(winform.editH.text);
win.clip.write(text);
}
winform.show();
win.loopMessage();