
import win.ui;
import godking.vlistEx;
var winform = win.form(text="aardio form";right=711;bottom=607;bgcolor=16777215)
winform.add(
menu={cls="vlistEx";left=8;top=8;right=136;bottom=600;bgcolor=16777215;db=1;dl=1;dr=1;dt=1;z=3};
static={cls="static";left=139;top=7;right=140;bottom=600;bgcolor=16752414;clip=1;db=1;dl=1;dt=1;z=1};
vlist={cls="vlistEx";left=144;top=8;right=698;bottom=599;bgcolor=16777215;db=1;dl=1;dr=1;dt=1;z=2}
)
str =
var pageitemlist,pagelist = {},{};
for(i=1;5;1){
var t = {fields={"序号","图标","软件名称","软件介绍","软件大小","下载"}};
var pattern = "软件名称"++i++"=(\C+)\r\n软件图标=(\C+)\r\n软件介绍=(\S+)\r\n软件大小=(\d+.?\d+\sMB)\r\n软件链接=(\S+.exe)\r\n"
for s1,s2,s3,s4,s5 in string.gmatch( str, pattern ){
var tt={};
tt["序号"]="[@rowindex]";
tt["图标"]="";
tt["软件名称"]=s1;
tt["软件介绍"]=s3;
tt["软件大小"]=s4;
tt["下载"]="";
tt["地址"]=s5;
tt["图标网址"]=s2;
..table.push(t,tt);
}
..table.push(pageitemlist,t);
..table.push(pagelist,{"[@ownerDraw]","E:\图片素材\png\png60_清新网页设计\ ("++i++").png","标题 "++i});
}
winform.menu.setTable(pagelist ," ",,,,,);
winform.menu.setHeaderHeight(0);
winform.menu.setRowHeight(40);
winform.menu.padding=0;
winform.menu.lineWidthV=0;
winform.menu.lineWidthH=0;
winform.menu.hideScroll(true,false);
winform.menu.setColumnType(1,5,1,, );
winform.menu.selectedBkColor=null;
winform.menu.ownerDraw = function (row,col,hdc,x,y,w,h,param,...){
import godking.paint;
var p = godking.paint.fromHdc(hdc);
if param {
p.fillRoundRectF(x,y,w,h,20,0xFF1493FD);
p.fillEllipseF(x+5,y+5,h-10,h-10,0xFFFFFFFF)
p.drawImageF(x+10,y,h-20,h,winform.menu.getCellText(row,2),,true);
p.drawTextF(x+h,y,w,h,winform.menu.getCellText(row,3),::LOGFONT(name="宋体";h=14;color=0xFFFFFFFF;brush=null),0,0,1)
} elseif winform.menu.selIndex===row{
p.fillRoundRectF(x,y,w,h,20,0xFF50B82E);
p.fillEllipseF(x+5,y+5,h-10,h-10,0xFFFFFFFF)
p.drawImageF(x+10,y,h-20,h,winform.menu.getCellText(row,2),,true);
p.drawTextF(x+h,y,w,h,winform.menu.getCellText(row,3),::LOGFONT(name="宋体";h=14;color=0xFFFFFFFF;brush=null),0,0,1)
} else {
p.fillRoundRectF( x,y,w,h,20,0xB19EA7FD)
p.fillEllipseF(x+5,y+5,h-10,h-10,0x55FFFFFF)
p.drawImageF(x+10,y,h-20,h,winform.menu.getCellText(row,2),,true);
p.drawTextF(x+h,y,w,h,winform.menu.getCellText(row,3),::LOGFONT(name="宋体";h=14;color=0xFF000000;brush=null),0,0,1)
}
var rect = ::RECT(x+w-14,y,x+w,y+14);
if rect.contains(winform.menu.mouseX,winform.menu.mouseY){
p.fillEllipse(rect ,0xFFFF0000);
} else {
p.fillEllipse(rect ,0xFF00AA00);
}
p.drawEllipse(rect ,0xFFFFFFFF,,)
p.textAntiAlias = true;
p.drawText(x+w-13,y,x+w,y+17,"×",::LOGFONT(name="Arial";h=20;color=0xFFFFFFFF;brush=null),0,1,1);
p.close();
winform.menu.setButtonRects( row, col, {rect} );
}
import inet.http;
var mypic = ..raw.buffer(1024*1024*10);
winform.vlist.setHeaderHeight(50);
winform.vlist.headerAlign = 1;
winform.vlist.setRowHeight(45);
winform.vlist.textColor = 0x666666;
winform.vlist.selectedTextColor = 0xFF0000;
winform.vlist.lineColorH =0xCFCFCF;
winform.vlist.lineWidthV = null;
winform.vlist.addImg("正常按钮","https://d.xiazai8.com/pic/20240316/dfphijddtql.jpg");
winform.vlist.addImg("悬停按钮","https://d.xiazai8.com/pic/20240316/nmx5hgq2tap.png");
import thread.command;
thread.command.instance().resetImg =function(row,imgfile,len){
if row and imgfile and len {
var buf = ..string.left(mypic,len);
if winform.vlist.addImg(imgfile,buf,false,100,100) {
winform.vlist.redrawRow(row);
}
}
}
import godking.paint;
winform.vlist.ownerDraw = function (row,col,hdc,x,y,w,h,param,...){
var url = winform.vlist.getCellText(row,"图标网址");
var buf = winform.vlist.getImg(url);
if buf {
var p = godking.paint.fromHdc(hdc);
p.drawImageF(x,y,w,h,buf,,true)
p.close()
return ;
}
..gdi.fillRect(hdc,0xEEEEEE,::RECT(x,y,x+w,y+h));
thread.invoke(
function(row,imgfile,mypic){
import inet.http;
var pic = inet.http.get(imgfile);
if type.isString(pic) {
import thread.command;
thread.lock("临界区名称");
..raw.copy(mypic,pic,#pic);
thread.command.resetImg(row,imgfile,#pic);
thread.unlock("临界区名称");
}
}
,row,url,..raw.toPointer(mypic));
}
winform.vlist.onClick = function(row,col,x,y){
if col==6 {..win.msgbox(winform.vlist.getCellText(row,"地址"))}
}
winform.menu.onClick = function(row,col,x,y,buttonIndex){
if row {
if !buttonIndex {
winform.vlist.setTable(pageitemlist[row] ,,{40,50,150,180,60,60},,,,true)
winform.vlist.setColumnType(2,6 );
winform.vlist.setColumnType(6,5,1,"正常按钮","悬停按钮" );
} else {
winform.menu.delRow(row);
table.remove(pageitemlist,row);
}
}
}
winform.show();
winform.menu.onClick(1);
win.loopMessage();