aardio 文档
aardio 范例: 用 Delphi 语言为 aardio 编写控件
//Delphi 控件
import win.ui;
/*检测DLL{{*/
if(!io.exist("\Project1.dll")){
import process;
process.exploreSelect("\Project1.dpr");
error("请先用 Delphi 打开此目录下的 DLL 源码工程编译生成 \Project1.dll")
}
/*}}*/
//改为 raw.loadDll($"\Project1.dll") 表示嵌入 DLL 到代码并通过内存加载
var delphiDll = raw.loadDll("\Project1.dll");
class win.ui.ctrl.delphiForm{
ctor(parent,tParam){
/*
aardio 可以免声明直接调用 API 函数(当然先声明API也是可以的,先声明可以支持更多的参数类型),
所有结构体(传址)、字符串、字节数组(raw.buffer)、不大于32位的整数、64位无符号整数(math.size64)
都可以直接作为调用参数,不需要指定类型,更可通过尾标语法指定返回值的类型以及是否对字符串进行 UTF-16 自动转换。
相关范例:「 aardio 范例 / 调用其他语言 / C语言 」
相关文档: https://www.aardio.com/zh-cn/doc/library-guide/builtin/raw/directCall
*/
this.hwnd = delphiDll.CreateForm(parent.hwnd);
};
@..win.ui.ctrl.metaProperty()
}
/*DSG{{*/
var winform = win.form(text="用 Delphi 语言为 aardio 编写控件";right=507;bottom=423;bgcolor=11842740)
winform.add(
custom={cls="delphiForm";text="嵌入 Delphi 控件";left=17;top=28;right=490;bottom=211;db=1;dl=1;dr=1;dt=1;z=1};
edit={cls="edit";text="请先用 Delphi 打开此目录下的 DLL 源码工程编译生成 \Project1.dll";left=16;top=228;right=489;bottom=398;edge=1;multiline=1;z=2}
)
/*}}*/
import web.json;
winform.onTest = function(delphiStructParam){
winform.edit.print("Delphi 调用了aardio 函数,参数如下:");
winform.edit.print(delphiStructParam);
delphiStructParam.x = 90;
//可选返回修改后的结构体
return delphiStructParam;
}
winform.edit.text = "";
winform.show();
win.loopMessage();
Markdown 格式