aardio - 虚表——列附加文本及列按钮区域例程

请升级至虚表最新版

使用 定点图片 + 按钮区域,可以在单元格内随意创建(伪装)按钮。

使用该方式创建的按钮,只会响应鼠标点击事件,不会产生鼠标划过事件,也就是说,当鼠标在按钮上划过时,图片不会发生变化。

使用该方式创建按钮,虽然没有鼠标划过、按下等图片变化效果,但胜在简单方便,可轻松实现诸如 “选择文件” 等功能。

同时,设置定点图片可以使用 “附加文本” 实现,根本不用处理单元格内容,实在是太方便了。

当然,也可以通过 onDrawCellRect...等事件函数,自行改变显示内容,效果一样,但不如 “附加文本” 简单方便。

import win.ui;
import godking.vlistEx;
/*DSG{{*/
mainForm = win.form(text="vlistEx - table adapter";right=839;bottom=647)
mainForm.add(
vlist={cls="vlistEx";left=8;top=8;right=832;bottom=640;border=1;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/

//创建图片数据
import godking.paint
import inet.http
var imgs = godking.paint.splitImage("https://aardio.online/upload/files/20250207/1738894054.png",6,6,0,0,0,0)
for(i=1;#imgs;1){
    mainForm.vlist.addImg(i/*图片名称*/,imgs[i]/*图片文件*/,false/*是否替换*/,/*宽度*/,/*高度*/);
}
//设置数据
var t = { fields={"序号","姓名","照片","地址","政治面貌"} };
for(i=1;100;1){
    var tt={};
    tt["序号"]="[@rowindex]";  // 行序号标记是不允许编辑修改的
    tt["姓名"]="姓名"+math.random(1,999);
    tt["照片"]="";
    tt["地址"]="地址"+math.random(1,999);
    tt["政治面貌"]= math.random(0,1)?"党员":"群众";
    ..table.push(t,tt);
}
mainForm.vlist.setTable(t,,{100,100,-1,100,100},{1,1,0,1,1});
mainForm.vlist.setRowHeight(40);
mainForm.vlist.headerBkcolor = 0xFFDDDD;
mainForm.vlist.headerFont = ::LOGFONT(name="宋体";h=14;color=0xFF0000);
mainForm.vlist.headerAlign = 1;
//定义列按钮区域
mainForm.vlist.setColumnButtonRects(3,{x=-15,y=-15,w=15,h=15});
//定义列附加文本
mainForm.vlist.setColumnAdditionalText(3/*列号*/,"<img name=`%s`,w=20,h=20> "/*前缀文本*/,"<img name=28,x=-15,y=-15,w=15,h=15>"/*后缀文本*/)
//定义单元格点击事件。如果点击的是按钮区域,则进行相应的操作。
mainForm.vlist.onClick = function(row/*行*/,col/*列*/,x,y,buttonIndex/*按钮区域序号*/){
    if col===3 and  buttonIndex {
        import fsys.dlg
        var file = fsys.dlg.open("*.png|*.png");
        if file owner.setCellText(row,col,file);
        return true; 
    }    
}
//编辑模式
mainForm.vlist.onEditBegin = {true,3}; 
mainForm.show();
win.loopMessage();

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢光庆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值