遇到界面中耗时初始化操作, 弹出加载动画效果
By
admin
at 2018-04-22 • 1人收藏 • 1889人看过

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的时候发现个问题:
如果环形缓冲界面中用
mb.go("/html/index.html");这种形式是不能生成独立的exe的, 必需使用
import wsock.tcp.simpleHttpServer; mb.go( wsock.tcp.simpleHttpServer.startUrl("/html/index.aardio") );这样的形式才行, 具体啥原因也没仔细思考了.
反正现在可以愉快的玩耍了.