遇到界面中耗时初始化操作, 弹出加载动画效果
By
admin
at 2018-04-22 • 1人收藏 • 1782人看过
import win.ui; /*DSG{{*/ mainForm = win.form(text="耗时操作提示加载等待演示";right=806;bottom=419;border="dialog frame";mode="popup";parent=...) mainForm.add( plus={cls="plus";text="加载完毕,隐藏加载页,显示主窗体!";left=159;top=156;right=650;bottom=257;db=0.39;dl=0.2;dr=0.19;dt=0.37;font=LOGFONT(h=-29);z=1} ) /*}}*/ var frmChild,wb = mainForm.loadForm("\res\jiazai.aardio"); frmChild.show(); var 一些初始化耗时操作 = function(){ win.delay(5000); frmChild.close(); mainForm.show(); } 一些初始化耗时操作(); //mainForm.show(); win.loopMessage();
4 个回复 | 最后更新于 2018-04-27
jiazai.aardio中的代码:
import win.ui; /*DSG{{*/ winform = win.form(text="aardio工程34";right=349;bottom=359;border="none";mode="popup") winform.add() /*}}*/ import web.blink.portable;//生成独立EXE import web.blink.layeredWindow; var mb = web.blink.layeredWindow(winform); import wsock.tcp.simpleHttpServer; mb.go( wsock.tcp.simpleHttpServer.startUrl("/html/index.aardio") ); mb.wait(); //winform.enableDpiScaling(); winform.show(); win.loopMessage(); return winform;
调用js的提示组件, 来初始化提示操作
import win.ui; /*DSG{{*/ mainForm = win.form(text="aardio form";right=413;bottom=297;bgcolor=8421376;border="none";maxmize=1;mode="popup") mainForm.add() /*}}*/ import web.blink.portable;//生成独立EXE import web.blink.layeredWindow; //透明化整个窗体 var mb = web.blink.layeredWindow(mainForm); mb.go( "\html\index.html" ) ; //等待网页加载完成在进行下一步操作 mb.wait(); //显示放到这里才能避免打开软件瞬间闪烁 mainForm.show(); var funTab = { {"X轴回零成功!";"success"}; {"Y轴初始化完成!";"success"}; {"Z轴后退完成!";"success"}; {"R轴旋转失败!";"error"}; {"功率计通信失败!";"warning"}; {"采集卡初始化成功!";"success"}; {"X轴回零成功!";"success"}; {"Y轴初始化完成!";"success"}; {"Z轴后退完成!";"success"}; {"R轴旋转失败!";"error"}; {"功率计通信失败!";"warning"}; {"采集卡初始化成功!";"success"}; {"X轴回零成功!";"success"}; {"Y轴初始化完成!";"success"}; {"Z轴后退完成!";"success"}; {"R轴旋转失败!";"error"}; {"功率计通信失败!";"warning"}; {"采集卡初始化成功!";"success"}; } var docall = function(){ for(i=1;#funTab;1){ var popStr = 'spop({' ++ 'template:"' ++ funTab[i][1] ++ '",' ++ 'position:"top-left",'; if(funTab[i][2] == "success"){ popStr = popStr ++ 'autoclose: 4000,' } popStr = popStr ++ 'style:"' ++ funTab[i][2] ++ '"'++ '})' mb.doScript( popStr ); win.delay(500) } win.delay(2000) //mainForm.show(false); } docall(); return win.loopMessage();
jacen提供的一个弹出信息界面: 用plus实现
import win.ui; import gdip.fontAwesome; /*DSG{{*/ var winform = win.form(text="aardio form";right=431;bottom=79;bgcolor=5655109;border="none";min=false) winform.add( plus={cls="plus";text='\uF05A';left=24;top=14;right=80;bottom=62;color=13928507;dl=1;font=LOGFONT(name='FontAwesome';h=-37);z=1}; plus2={cls="plus";text="这是一个简单的提示框";left=104;top=22;right=408;bottom=54;align="left";color=16777215;dl=1;dr=1;font=LOGFONT(h=-16);z=2} ) /*}}*/ import win.ui.simpleWindow2; var sw = win.ui.simpleWindow2(winform) sw.skin( color = { hover = 0xffffffff; active = 0x33ffffff; default = 0x66ffffff; } ) winform.transparent(true) trans = 10 var tmId = winform.addtimer( 5, function(hwnd,msg,id,tick){ trans += 5 winform.transparent( trans ) if( trans > 240 ){ winform.transparent(false) return false } } ) winform.onClose = function(hwnd,message,wParam,lParam){ trans = 255 var tmId = winform.addtimer( 5, function(hwnd,msg,id,tick){ trans -= 5 winform.transparent( trans ) if( trans < 10 ){ winform.onClose = null; winform.close() return false } } ) return false } winform.show() win.loopMessage();
登录后方可回帖
把上面的程序生成独立exe的时候发现个问题:
如果环形缓冲界面中用
这种形式是不能生成独立的exe的, 必需使用
这样的形式才行, 具体啥原因也没仔细思考了.
反正现在可以愉快的玩耍了.