jacen

用户名:jacen

注册于:2019-10-26

主题数: 0     回贴数: 34

网站:

介绍:

最后活动于8 天前
回复了主题  › 使用CountAPI统计使用次数

用 web.rest 代码可读性好一些,代码量也少一些:

  import console; import web.rest.jsonLiteClient; var http = web.rest.jsonLiteClient() var countApi = http.api("https://api.countapi.xyz/hit/{namespace}/{key}") var data = countApi["example.com"]["password"].get(); co
«  8 天前
回复了主题  › aardio扩展库:调用Python函数(例如itertools.permutations和itertools.combinations)

新版 py,py2,py3 等扩展库( 这几个库的接口会同步升级 )又做了大幅改进,
现在直接输出 Python 对象就可以了,跟 aardio 对象一样地使用:

import console;  import py3; var pyMath = py3.import("math") var pyInt = pyMath.factorial(30); console.log( pyInt );   console.pause(true);

或者:

«  15 天前
回复了主题  › 修改aardio.js,连接web.socket.jsonServer

没有仔细看你的代码,

但注意到你删除了大量的代码,又添加了大量的代码,

具体是要解决什么问题呢?


aardio.js 原本就支持 WebSocket 和 Promise,

也可以将对 web.socket.jsonServer 的远程函数调用自动转换为 JavaScript 中的 Promise。


另外标准库有提供 web.rpc.externalServer 

支持单独创建独立的 web.socket.jsonServer 用于支持 aardio.js。

«  15 天前
回复了主题  › aardio扩展库:调用Python函数(例如itertools.permutations和itertools.combinations)

调用Python 函数本就可以直接传入 aardio 对象作为参数,
为什么要用字符串再去转换一遍呢? 

«  19 天前
回复了主题  › WaveDorm数字时序图绘制,专门给IC工程师使用的控件

还可以在 aardio 里直接调用 WaveDrom ,例如:

import win.ui; /*DSG{{*/ var winform = win.form(text="WaveDorm 数字时序图绘制") /*}}*/    import web.form var wb = web.form(winform);    wb.html = /** <!doctype html> <html> <head> <meta charset="utf-8">
«  29 天前
回复了主题  › WaveDorm数字时序图绘制,专门给IC工程师使用的控件

cloudflare 有些奇怪的不正常,用这个就卡住没反应,换成 jsdelivr 就好了。
jsdelivr 在国内访问速度最快最稳定,建议优先用这个。

import win.ui; /*DSG{{*/ var winform = win.form(text="WaveDorm 数字时序图绘制") /*}}*/   import web.form var wb = web.form(winform);   wb.html = /** <!doctype html> <ht
«  29 天前
回复了主题  › aardio扩展库 数据维格表api

不用网上搜,不用一个个试验 …… 只要简单地翻一下基础语法文档就可以。

aardio 里字符串本来就可以直接比较,例如 str1 > str2。这些 aardio 基础语法里都有写。

如果你需要更多的比较功能,可以查看 string 函数库文档。aardio 提供了非常多的字符串比较函数,例如 string.cmp, string.cmpMatch,string.collate 等。字符串函数都在这个库里,很好找。

即使你真的要用这种奇怪的方法从字符串里取数字,也不用这么复杂, string.replace(md5a,"\D",

«  2021-09-08
回复了主题  › aardio扩展库 数据维格表api

用 web.rest 可以更简单一些,可以将 API  自动转换为 aardio 函数:

import web.rest.jsonClient; class web.rest.vika{ ctor( authToken ){ this = ..web.rest.jsonClient(); this.defaultUrlTemplate = "https://api.vika.cn/fusion/v1/datasheets/dst{datasheetId}";  this.addHea
«  2021-09-06
回复了主题  › 分享一个把文件夹加密的方法(aardio)

读文件到字符串可以用 string.load() 函数:

var password = string.load("/"+dirName +".{21EC2020-3AEA-1069-A2DD-08002B30309D}/此文件夹的加密密码.config")
«  2021-08-13
回复了主题  › 分享一个把文件夹加密的方法(aardio)

很好的经验分享,用下面的方法文件名可以有中文和空格

命令行可以直接用 process.popen.cmd ,没有黑窗口,执行完自动关闭,用 waitOne() 就可以解决执行等待问题。

加密

process.popen.cmd('ren "'+dirName+'" "'+dirName+'.{21EC2020-3AEA-1069-A2DD-08002B30309D}"').waitOne(); process.popen.cmd('attrib +h +s "'+d
«  2021-08-13
回复了主题  › 让winform创建多个button控件

如果有非常多的控件,其实也可以用一个 plus 控件画出来,响应事件的时候再计算一下坐标就可以了。参考标准库里的 color.view, color.viewForm ,应用例子就是工具里的调色器(打开色表)

«  2021-08-13
回复了主题  › 调用c#编写的CarlosAg.ExcelXmlWriter.dll处理excel文件

获取枚举值:
var dataType = Demodll.getEnum("CarlosAg.ExcelXmlWriter.DataType.Number")

新版支持简写:
Demodll.getEnum("DataType.Number")

«  2021-07-24
回复了主题  › 调用c#编写的CarlosAg.ExcelXmlWriter.dll处理excel文件

回复#1 @笑口常 :

并不是不支持多个参数,而是因为C#的枚举值无法表达自身类型,2作为数值传过去以后,C#里数值和枚举值无法自动转换,导致调用失败。

aardio 新版已经针对这个问题做了改进,你的代码可以正常运行了。
不过 aardio 可能无法支持全部的 C# 语法特性,遇到这类问题,可以直接用 C# 写一个中间DLL(在 aardio 里可以内存加载该DLL ),简化调用接口。

«  2021-07-24
回复了主题  › EXCEL和aardio交互:利用httpserver功能(学习记录)

感谢分享,棒棒的。


我看到你在说 com.excel 要依赖 Excel ,也对,他不依赖 excel 就不会叫 com.excel 了。

我看到你用 VBA 没提依赖这个问题,我对VBA不熟,VBA不用「依赖」Excel 是吧?!


http.run() 函数我看你用得很顺呀,

这可能是最简洁的服务端实现了吧,具体你是哪一点不明?今天有空,我愿意跟你细细讲讲。


«  2021-07-17
回复了主题  › aardio自定义控件一例

回复#7 @nuck :

《库函数文档》点「内核库 / math 」
《aardio用户手册》点「基础语法/数据类型」

type( v ) == type.string 就是字符串

type( v ) == type.number 就是数值

math.isFinite( v ) 是有效数值

math.isInteger( v ) 就是整数,反之就是浮点数



«  2020-05-21
回复了主题  › plus模拟美化和替换listview的滚动条

很聪明,简单的代码实现了炫酷的效果。

listview.wndproc 其实可以写到扩展库里会更方便, wndproc可以重复赋值,所以不影响控件继续增加 wndproc。

另外这个关于最后一行的判断实际上可以简化,可以这样写:

if( plus.stepProgress(-1,true) ){

      :SendMessageInt(winform.listview.hwnd, 0x115/*_WM_VSCROLL*/, 1, 0);

}  

plus.stepProgress(-1

«  2020-04-09
回复了主题  › 阿里云语音合成

这个合成语音,网络原因或者文本较长可能会有一会延时,所以这里改成了多线程,不然可能误解为没有反应 - 然后连续重复提交。

winform.play.oncommand = function(id,event){     if(winform.txt.text==""){         win.msgbox("文本不能为空")         return ;      }     if(appkey == "" or accessKeyId == ""){         win.msgbox("
«  2020-04-06
回复了主题  › 阿里云语音合成

另外智能提示配置中的 !client 更改为了 !aliyunTtsClient , 这种应当使用更准确的名字以避免出现名字冲突( 因为都是全局有效 )

«  2020-04-06
回复了主题  › 阿里云语音合成

aliyun.tts 已经发布到 aardo 扩展库里了,这是改进后的示例(时间关系比较抢,所以范例未仔细检查,大概地改了一下):

/* http://www.htmlayout.cn/t/374 */ import fonts.fontAwesome; import win.ui; /*DSG{{*/ var winform = win.form(text="阿里云TTS";right=353;bottom=507) winform.add( bk={cls="bk";text="语调";left=19;t
«  2020-04-06
回复了主题  › 阿里云语音合成

感谢分享,非常棒。


有几个小的建议,

库的命名上我们还是要斟酌一下,aardio 的库得益于简洁统一的命名 - 其实让我们轻松了许多。

例如上次的Zint调整到libzint,就是去掉首字母大写(名字空间统一这样命名),使用更精确的名称代替短名称。


类似上面这个扩展库,使用了三个名字空间 aliyun,aliyun.tss,aliyun.util,

据我的了解,aliyun的接口很多(例如我就写过一个aliyun.oss),这样可能会覆盖其他人的代码,而实际上这个扩展库里aliyu

«  2020-04-06
回复了主题  › 条码库Zint.dll的调用学习

用法示例(需要更新aardio到最新版,因为用到了新版的raw.struct):

import win.ui; /*DSG{{*/ mainForm = win.form(text="Zint条码使用 - 作者:popdes(htmlayout.cn)";right=1145;bottom=788;bgcolor=12639424) mainForm.add( plus={cls="plus";left=31;top=25;right=1082;bottom=755;repeat="scale";z=1} )
«  2020-04-04
回复了主题  › 条码库Zint.dll的调用学习

又做了一些小的修改,最终扩展库如下:

import raw.struct; import gdip.bitmap; class libzint{ ctor(){{        var pSymbol = _dll.ZBarcode_CreateP();          this = ..raw.struct(zintSymbol,pSymbol);         this[["#pSymbol"]] = pSymbol;                    ..table.gc(this,"del
«  2020-04-04
回复了主题  › 条码库Zint.dll的调用学习

因为在 gdip.bitmap 的构造参数中宽、高参数写反了,所以你后面行、列要反过来写,因为行,列反过来写,所以图像必须旋转90度,因为二维码宽高一样,所以只有条码是错的,这种笔误真挺耗时间,看了zint 的源码才注意到这里。

aardio 扩展库最好不要首写大字母,库名同时是名字空间 - 一般小写首字母,保持一致的命名风格更好,所以我改了一下名字改为 libzint。

另外大家注意一下zint虽然是GPL许可证,但libzint这个核心组件却是宽松的BSD许可证,扩展库一般注明这些比较好。

我们可以在库里右键新建一个目录,命名为

«  2020-04-04
回复了主题  › 串口库sio的一些研究和扩展

回复#7 @sankychen :

标准库是自带的,不需要下载,
扩展库你可以在扩展库管理器里钩选你要下载的库,可以一次下载到本地。扩展库也不需要放到项目里,那么多的库,你每个项目都不必要的复制一份副本,那你项目得有多大?!

我们使用的阿里云的服务器,阿里云还是信得过的。aardio  的服务器提供了十多年的稳定服务,我很少听到不能下载的反馈,所以一般没有必要下载所有的扩展库。

不过无论是你的网络还是我的网络、都不可能保证百分百的稳定不出现短暂的中断,没有一个服务器

«  2020-03-28
回复了主题  › aardio调用com组件操作photoshop

app.Preferences.RulerUnits = 1 会先询问PS他要什么类型,而PS这样会报错,
app.Preferences.RulerUnits = com.Variant(1) 这样写aardio会先确定类型,PS这样反而不报错。

在COM接口里,1和com.Variant(1) 的作用是一样的,区别就是确定类型前要不要问过对方(COM的数值有细分为很多类型)

新版针对PS这个做了改进,以后直接写app.Preferences.RulerUnits = 1  就可以了。

«  2020-03-25
回复了主题  › 调用ActiveBarcode组件实现多种条形码类型和二维码生成

回复#6 @wyybeyond :


关于你所说的“完全不知道如何下手,看了下手册,好多东西都是迷迷糊糊的,比如,用单引号和双引号表示字符串,好像都行。语句后面加不加分号,好

«  2020-03-01
回复了主题  › 原生气泡提示框

 该功能已经添加到标准库了,用法更简单了:

//文本框汽泡提示 import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=759;bottom=469) winform.add( btnError={cls="button";text="错误";left=280;top=306;right=390;bottom=353;z=2}; btnInfo={cls="button";text="提示";left=539;top=
«  2020-01-12
回复了主题  › 三维图表控件ecGraph3D的使用

aardio中调用VB编写的控件非常方便,

以上面的3D控件为例,只要一句代码就可以嵌入:

var ec3dG = com.lite("\res\ecGraph3D.ocx").createEmbed(main

«  2019-12-24
回复了主题  › plus控件改变文本的颜色

系统的edit控件不支持垂直对齐,

winform.plus.editBox.setPadding()的效用一拖动就会消失,

aardio实际上是反复调用这个函数来做修补。

plus控件有更简单的设置方法:

你可以直接在plus控件属性里指定

«  2019-12-11
回复了主题  › 抖音排行榜播放软件源码分享


var res = http.get(url)||{};

if(res.status_code=="0")


类似这种res可能返回为非对象的,可以改用直接下标
if(res[["status_code"]]=="0") 无论res是什么东西,这句代码都可以正常执行,可以省很多代码了。

这个类似javascript,typescript最近炒的很热火的可选链,aardio十几年前就有了。



«  2019-12-10
登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前在学aardio+halcon机器视觉.
加入本站专享群:783804676
AARDIO语言QQ大群:70517368
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
C大Aardio论坛:Aar爱好者论坛
本 站 主 站:Stm32cube中文网
Sciter中文在线文档Sciter在线学习文档
赞助商:才仁机械