aardio 文档

aardio 范例: web.form 入门

//入门
import win.ui;
/*DSG{{*/
var winform = win.form(text="web.form 入门";right=892;bottom=566;scroll=1)
winform.add()
/*}}*/

/*
只要简洁,不求完美!
Win7 在市场上已经接近消失,现在开发软件再处处考虑 Win7 兼容是不必要的。
注意 Win10/11 自带 IE11,不自带 IE11 的旧系统已经很罕见一般没必要再考虑。
即使系统删除 IE 浏览器,IE 内核浏览器的控件仍作为操作系统组件被保留。

web.form 使用系统自带的 IE 内核,生成的 EXE 体积很小。
改用 web.view 库可支持系统自带的 Edge Chromium 内核。

不要拿 web.form 去跟 web.view 比,
请拿 web.form 跟 static 控件比。

凡事多看优点,扬其长避其短:
static 都有用,web.form 当然更有用。 
其实 web.form 轻量,接口简洁并易于使用,还是非常好的。
*/
import web.form;
var wb = web.form( winform );//参数 @1 指定嵌入窗口(可以是 winform 或 static,custom 等控件对象)。

import console;
wb.external={
    tab = {abc=1;b=2};
    aardioArray = function(){
        return wb.jsArray({12;23;34}); 
    };
    log = function(...){
        console.log(...)
    } 
} 
import console;

wb.html = /**
<!doctype html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <script type="text/javascript">

    $enum = function(obj,callback,thisObj){

        if( obj instanceof Array ){
            for(var i=0;i<obj.length;i++){
                callback.call(thisObj||window,i,obj[i],obj);  
            }
        }
        else if( obj instanceof Object ){
            for( k in obj){
                callback.call(thisObj||window,k,obj[k],obj); 
            }
        }
        else{
            if(typeof(obj)=="unknown"){
                var array = new VBArray(obj).toArray() //注意多维 aardio 数组转换为 JScript 会转换为单维数组,改用 JSON 传输参数可支持更多 JS 对象
                for (var i = 0; i < array.length; i++) {
                    callback.call(thisObj||window,i,array[i],array );
                }
            }
            else if( obj ) { 
                var e = new Enumerator(obj);  
                var k;
                if(!e)
                    return;

                for   (;!e.atEnd();e.moveNext()){ 
                    k = e.item(); 
                    callback.call(thisObj||window,k,obj[k],obj); 
                } 
            }
        } 
    }  
    </script>

    <script type="text/javascript">
    //其他Js代码

    </script>

    <style type="text/css">
    body { 
        font: 10.5pt/1.3;
    }
    </style> 
</head>
<body style="margin:50px">
    <button id="myId">  
        点这里试一试
    </button>
<br><br>    
只要简洁,不求完美!<br>
Win7 在市场上已经接近消失,现在开发软件再处处考虑 Win7 兼容是不必要的。<br>
注意 Win10/11 自带 IE11,不自带 IE11 的旧系统已经很罕见一般没必要再考虑。<br>
即使系统删除 IE 浏览器,IE 内核浏览器的控件仍作为操作系统组件被保留。<br> 
<br>
web.form 使用系统自带的 IE 内核,生成的 EXE 体积很小。<br> 
改用 web.view 库可支持系统自带的 Edge Chromium 内核。<br>
<br>
不要拿 web.form 去跟 web.view 比,<br>
请拿 web.form 跟 static 控件比。<br>
<br>
凡事多看优点,扬其长避其短:<br>
static 都有用,web.form 当然更有用。 <br>
其实 web.form 轻量,接口简洁并易于使用,还是非常好的。<br>
</body>
</html>
**/

var js = /**
    external.log( "Hello, aardio!" )
    external.log( "Welcome to aardio!",event.srcElement.id );
    //枚举js数组
    $enum(
        [1,2,3],
        function(v,i){
            external.log(v,i)
        }
    )
    //枚举js对象
    $enum(
        {a:123,b:456},
        function(k,v){
            external.log(k,v)
        }
    )
    //枚举aardio数组
    $enum(
        external.aardioArray(),
        function(k,v){
            external.log(k,v)
        }
    )
    //枚举aardio对象
    $enum(
        external.tab,
        function(k,v){
            external.log(k,v)
        }
    )
**/
wb.eventScript(js,"myId","onclick")

winform.show();
win.loopMessage(); 
Markdown 格式