虚表新版本 将customPlus基本功能进行了移植,可使用与customPlus基本相同的定义模式(itemModel 和 itemList),绘制单元格内容。
可以不用懂自绘,就可以自定义单元格图文按钮等混排效果了。
详情参考下面的例子:
import win.ui;
import godking.vlistEx;
/*DSG{{*/
var winform = win.form(text="aardio form";right=391;bottom=407;bgcolor=16777215)
winform.add(
menu={cls="vlistEx";left=8;top=8;right=240;bottom=408;bgcolor=16777215;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/
import console
var pagelist = {};
for(i=1;20;1){
..table.push(pagelist,{`标题 `++i})
}
winform.menu.setTable(pagelist /*数据表*/,/*列标题*/,/*列宽*/,/*0左1中2右*/,/*字典转为数组*/,/*字符串转为Utf8*/,/*是否克隆新表*/);
winform.menu.setHeaderHeight(0);
var itemModel = {
{
type="rect",
rectf={x=0;y=0;width=-1;height=-1},
width=0,
color=0xFFFF0000,
round=false;
smooth=false,
fillcolor=null,
itemhoverfillcolor = 0xFFFFEBCD;
}
{
type="img",
rectf={x=10;y=10;width=26;height=26},
name = "checkimg",
hover = true;
scale = 1;
}
{
type="text",
rectf={x=50;y=0;width=-1;height=-1},
name="checktext",
text="哈哈哈";
align=0, /* 文本水平对齐方式。0、(近端)左对齐 1、居中 2、(远端)右对齐 */
valign=1, /* 文本垂直对齐方式。0、(近端)顶对齐 1、居中 2、(远端)底对齐 */
smooth=true, /* 使用平滑效果,抗锯齿 */
hover=true;
font={name="宋体",point=11,color=0xFF0000FF}, /* 正常状态下字体 */
hoverfont = {name="宋体",point=13,color=0xFFFF0000}, /* 鼠标滑过元素状态下字体 */
}
{
type="line",
color = 0xFFDDDDDD;
x1=47;
y1=5;
x2=47;
y2=35;
width =1;
smooth=0;
}
}
winform.menu.setColumnType(1/*列号*/,7/*_vlistEx_ColType_OwnerDrawCustom*/,itemModel/*参考godking.customPlus中的itemModel定义规则*/);
winform.menu.setRowHeight(50);
winform.menu.ownerDrawCustom = function (row,col,text/*当前单元格文本*/){
/* 当列类型为7(_vlistEx_ColType_OwnerDrawCustom)时,调用本函数。
通过返回值,设置itemModel中定义的各元素的值,以供虚表进行绘制。
返回值格式可参考godking.customPlus中的itemList中项目的定义格式。
支持绘制:img、text、rect、line 四种类型的元素。
支持定义:正常、hover、itemhover 三种状态的属性值。
使用鼠标悬浮的元素,要在itemModel中设置hover=true。
建议使用悬浮的各元素的rectf不要部分重叠,可以完全不重叠或完全重叠。*/
return {checkimg = {
img = "D:\图片素材\png\png60_清新网页设计\1 ("++row++").png";
hoverimg = "D:\图片素材\png\png60_清新网页设计\1 ("++(row+20)++").png";
}
checktext = {
text = "这是"++row++"行正常状态";
hovertext = "这是"++row++"行悬浮状态";
}
};
}
winform.show();
win.loopMessage();