两种方式实现调用美化文件夹选择对话框功能
By
admin
at 2020-01-19 • 0人收藏 • 2326人看过
特别提醒:
aardio作者已在aardio v25.81之后版本增加了调用IFileOpenDialog接口打开文件夹选择框的功能, 只需要调用以下代码:
import com.interface.IFileOpenDialog; var path = com.interface.IFileOpenDialog.dir(,winform,'请选择目录')
相关的范例在
用法参考:aardio范例 / 文件操作 / 文件对话框
查看这个功能实现代码,同时也可以学习com.interface接口的用法.
感谢aardio培训群: 心在安 分享dll和方案
我们知道在aardio里目前dlg.opendir() 打开的对话框是默认的小框
如下图:
我们下面利用 分享的dll来实现如下图的对话框
代码如下:
import win.ui; /*DSG{{*/ mainForm = win.form(text="aardio工程14";right=759;bottom=375) mainForm.add( button={cls="button";text="Button";left=216;top=226;right=571;bottom=317;z=1}; edit={cls="edit";left=178;top=46;right=570;bottom=181;edge=1;multiline=1;z=2} ) /*}}*/ var dll = ..raw.loadDll("\res\NewFolderPicker.dll","picklib","cdecl,unicode"); PickAFolder = dll.api("PickAFolder","void(pointer& path)" ); var GetFloder = function(){ var path = PickAFolder(null); if(path!=null){ var pathStr = raw.tostring(path,1,520); var PpathStr = string.split(pathStr); var retstr; for(i=1;520;1){ if(PpathStr[i]!='\0'){ retstr = string.concat(retstr,PpathStr[i]); }else { if(PpathStr[i+1]=='\0'){ break; } } } return retstr; } return null; } import console console.open() mainForm.button.oncommand = function(id,event){ var path = GetFloder() console.log(path) } mainForm.show(); return win.loopMessage();
dll下载:
生成dll的vc2019工程源码如下:
链接:https://pan.baidu.com/s/1Q1CYGkUWp7TYFdfhoB-1-w
提取码:gz33
备注:
以上生成dll是采用的com方式使用IFileOpenDialog接口实现,所以应该可以用com.interface实现同样的功能.
参考如下:
https://www.cnblogs.com/marvelousone/p/10327253.html
有机会com.interface方式实现后,同样会分享到楼下.
3 个回复 | 最后更新于 2020-01-30
登录后方可回帖
感谢aardio群: fish 提供com静态接口版本源码