虚表功能太多,很多人其实都不会用。
经小肥羊建议,尝试对虚表做二次封装,将某些经常用、好用的功能,封装为一个个独立的小库,小巧方便,非常实用。
也希望有此想法的朋友,封装好了以后分享给我,我集成到虚表库中进行统一发布。
import win.ui;
import godking.vlistEx.listbar;
import fonts.fontAwesome;
/*DSG{{*/
mainForm = win.form(text="vlistEx - table adapter";right=439;bottom=503)
mainForm.add(
checkbox={cls="checkbox";text="菜单单开";left=208;top=448;right=336;bottom=480;z=2};
checkbox2={cls="checkbox";text="多开时始终展开";left=208;top=392;right=336;bottom=424;z=3};
vlistEx={cls="vlistEx";left=8;top=8;right=192;bottom=496;acceptfiles=1;aw=1;border=1;db=1;dl=1;dr=1;dt=1;hscroll=1;vscroll=1;z=1}
)
/*}}*/
//创建图片数据
import godking.paint
import inet.http
var imgs = godking.paint.splitImage("https://aardio.online/upload/files/20250124/1737707732.png",5,5,0,0,0,0)
for(i=1;#imgs;1){
mainForm.vlistEx.addImg(i/*图片名称*/,imgs[i]/*图片文件*/,false/*是否替换*/,/*宽度*/,/*高度*/);
}
//创建实例
var listbar = godking.vlistEx.listbar(mainForm.vlistEx,{
menuBkColor = 0x71B33C; /*菜单背景颜色*/
menuHoverBkColor = 0xFFB33C; /*菜单鼠标划过背景颜色*/
itemBkColor = 0xFFFFFF; /*项目背景颜色*/
itemHoverBkColor = 0xEEEEEE; /*项目鼠标划过背景颜色*/
itemHeight = 40; /*项目高度*/
lineColorH = 0xDDDDDD; /*横线颜色*/
bkcolor = 0xFFFFFF; /*表格背景颜色*/
single = 0; /*菜单单开时默认展开的菜单索引。0是多开默认全展开。无效索引(如-1)则单开默认全不展开。*/
alwaysOpen = false; /*菜单多开时,是否所有菜单项都一直展开,不允许关闭*/
menuFont=::LOGFONT({name="fontAwesome",h=16,color=0xFFFFFF}); /*菜单字体*/
menuHoverFont=::LOGFONT({name="fontAwesome",h=16,color=0xFFFFFF}); /*菜单鼠标划过字体*/
itemFont=::LOGFONT({name="fontAwesome",h=14,color=0x000000}); /*项目字体*/
itemHoverFont=::LOGFONT({name="fontAwesome",h=14,color=0xFF0000}); /*项目鼠标划过字体*/
})
//设置项目数据
var t = {
{0," <img name=17,w=30,h=30> 基本操作",1}
{1,' \uF0AE 数据录入',1.1}
{1,' \uF0D0 数据编辑',1.2}
{1,' \uF0CC 数据删除',1.3}
{0," <img name=20,w=30,h=30> 数据查询",2}
{1,' \uF093 人员查询',2.1}
{1,' \uF0EA 地址查询',2.2}
{1,' \uF125 编码查询',2.3}
{1,' \uF073 索引查询',2.4}
{0," <img name=14,w=30,h=30> 系统设置",3}
{1,' \uF1E8 人员过滤',3.1}
{1,' \uF172 数据管理',3.2}
{1,' \uF085 账号登录',3.3}
};
listbar.setItemList(t);
//定义点击事件
listbar.onClick = function(index/*项目索引*/,text/*项目文本*/,data/*附加数据*/){
win.msgbox("您点击了:第"++index++"行"++text++'\n附加数据:'++data);
}
mainForm.checkbox.oncommand = function(id,event){
listbar.config.single = owner.checked?1:0;
if owner.checked listbar.open(1);
else listbar.openAll();
}
mainForm.checkbox2.oncommand = function(id,event){
listbar.config.alwaysOpen = mainForm.checkbox2.checked;
if mainForm.checkbox2.checked listbar.openAll();
}
mainForm.show();
win.loopMessage();