AAuto用户库标准库使用指南

首先创建对话框应用程序,打开 main.aau,在【对话框】上添加一个按钮,如下图:



然后暂时望记这按钮,在工具箱点击鼠标指针,然后在【对话框设计器】中点击【窗体】,按钮控件周围的八个小方块不见了,这表示他失去焦点了。然后我们点击快手右侧【属性面板】,在里面修改边框属性为:resizable



把边框设置为resizable,那么窗体运行以后就可以用鼠标拖动边框调整大小了。



然后继续在【对话框设计器】上添加一个【文本框控件】,用鼠标拖动控件右下角的小方块调整到合适大小, 如下图:



别忘记了窗体是可调整大小的,我们希望【控钮控件】大小不变,总是显示在【窗体】的右下角,然后我们希望【文本框控件】大小是可变的,总是尽可能显示到最大,首先点击【文本框控件】,在属性面板中点击【固定边距】前面的加号展开所有选项:



然后设置左、右、上、下四个边距的属性为true,true就是真,false就是假,在编程中称为【逻辑值】或者【布尔值】再按上面的方法设置【按钮控件】固定下边距、固定右边距。然后在快手中点击【运行】测试一下效果,试试最大化运行显示的对话框。然后修改按钮控件的文本属性为“点我抓取”,如下图:



然后在【对话框设计器】中双击按钮控件,自动切换到代码视图。快手编辑器自动的添加了一个事件函数:



首先,我们删除上面的注释,双斜杠开始的行是注释语句,一般显示为绿色,注释语句在运行时会被忽略,这里的注释语句仅仅是演示用法,我们可以先删掉不必要注释(程序中不要包含不必要的注释是一个良好习惯),变成下面这样:



function关键字定义一个函数,函数将一小段代码包含在一对大括号里,构成了一个短小的子程序。

下次我们要调用这段子程序,只要输入函数名字加圆括号就可以,例如我们执行代码mainForm.button.oncommand() 也就是执行上面我们定义的函数。

不过 oncommand是个特殊的函数,一般不是我们自己调用,而是在用户点击按钮时,由窗体对象自动调用的函数 - 也就是回调函数。

例如你认识了一个新朋友,他会跟你说:“Hi,请把你的电话号码留给我,你不要打电话给我,我有需要会打给你的”,这就是回调的一种形式了,回调函数也一样,你定义好 mainForm.button.oncommand 这个函数,窗体会在有需要时自动调用你的oncommand函数。我们决定在用户点击按钮时修改文本框的内容,于是我们输入 mainForm.edit. 当输入圆点以后,快手编辑器自动列出了名字为edit的控件对象所有可用的成员属性、以及成员函数。如下图:



经验是个很好的东西,所有的控件用法类似,甚至在不同编程语言里 - 常用的属性名、函数名都是类似的,再加上快手编辑器提供的代码自动提示功能,我们一般能快速的找到需要的属性、或方法。

有的新手可能会说:“我是真正的小白,什么经验也没有,我还是想知道edit控件到底有哪些可用的属性,最好是中文的说明”,好吧,我告诉你怎么找到这些东西,所有的窗口控件,都是在标准库的 win.ui.ctrl 名字空间下定义的(别问我什么是名字空间,你不需要搞清楚,其实我也不清楚)。在标准库中找到 win.ui.ctrl.edit 然后双击鼠标左键打开库文件, 如下图:



完成我们所有的代码如下( 鼠标放到代码上,然后你能在代码右上角看到复制源码的工具条 ):



我们进一步修改上面的程序,我们希望点击按钮控件不仅仅只是显示 “hello world”,而是抓取一个网页的html源码,并显示在文本框中。

我们希望在标准库中有一个名字空间叫 myTools 包含了我们需要的函数,而我们希望 myTools 名字空间下有一个 myTools.getHtml() 函数用来抓取网页的HTML源码。

但是很遗憾,标准库里没有这些东西,当然,我们可以在工程的用户库里添加自定义的库。下面我们在工程用鼠标右键中点击【用户库】,弹出下图的菜单:



在弹出的【用户库】菜单中点击【新建库】,弹出【新建】对话框如下图:



直接输入新用户库的名字"myTools",点后点击【打开】按钮,一切很顺利,在【工程管理器】的【用户库】目录下多了库文件 myTools,并且在编辑器中自动打开了这个库,如下图:



用户库中添加了默认代码



namespace 定义一个新的名字空间,我们可以在名字空间中添加需要的函数 getHtml,修改用户库代码如下;



return 语句指定函数的返回值。继续修改上面的代码,将 return "返回值"; 改为返回网页源码。

因为我们需要抓取网页,需要用到标准库中的 inet.http 对象,我们使用 import inet.http; 导入这个库备用,修改代码如下:



点击快手【快捷工具栏】的【保存】按钮保存库文件。



切换到 main.aau ,修改按钮回调函数为如下代码:



我们发现一点小小的不足,myTools.getHtml()只是固定的抓取指定网址,这非常的不方便,我们再回到 myTools 用户库,将网址修改为可变的函数参数,修改后的 myTools库源码如下( 修改部份为粗体字 ):



函数多了一个网址参数,在调用时需要由调用者在参数中传入要抓取的网址,在 myTools用户库最后面,添加一小段智能提示配置代码,如下:



点击【保存】按钮保存库文件,然后在【工程管理器】中右键点击用户库,在弹出菜单中点击【刷新目录、智能提示】



我们回到 main.aau 文件,修改 mainForm.button.oncommand 事件回调函数如下:



我们还遇到一个问题,如果网速比较慢的话,抓取的时间会很长,在单线程的窗口程序中,如果线程被耗时的操作所阻塞,也就不能正常的处理用户消息,导致用户点击界面没有反应。

这时候就需要用到多线程了,使用 thread.create() 可以创建线程,我们还要用 thread.waitOne() 函数等待线程执行完成。

在窗口程序中,可以使用更简单的 win.invoke() 函数创建工作线程。

win.invoke() 会创建一个工作线程执行代码,并且等待线程结束,然后获取返回值。

我们修改 main.aau 中 mainForm.button.oncommand 函数代码如下:



看完上面的教程相信大家心中已经有一些操作方向了。

(0)

相关推荐

  • win7系统中如何新建库 Win7库的创建方法图解

    win7库简介 库是win7中比较好的一个功能,我们可以通过库很快速的搜索到我们想要的文件,省去了很多翻阅磁盘和文件夹的时间,那么系统中的库只有那几个我们可以不可以自己创建呢。下面就来介绍一下创建库的 ...

  • 搜狗手机输入法怎么删除用户词汇/词库

    现在在智能手机上用搜狗输入法时它会自动保存用户的词汇,有时出于保护隐私我们并不希望自己的词汇被保存,那么怎么删除呢?下面将详细介绍. 操作方法 01 在手机桌面上点击图标打开手机搜狗输入法. 02 点 ...

  • Win7库文件夹应用指南

    装好win7系统后,打开我的电脑,会发现,左侧的工具栏与XP大不相同,其中有一组库文件夹放在了中间,里边包含了“视频”“文档”“音乐”等。但是这几个文件夹都是指向C盘的,我们一般存东西,都不会往C盘里 ...

  • 华为荣耀路由标准版设置指南

    华为荣耀路由如何设置?下面我们来看下. 操作方法 01 在浏览器上输入路由器的地址,进入设置页面.如果你是首先登录页面,可以点击上面的'马上体验',来根据向导来设置. (华为路由器的地址是192.16 ...

  • 在ST官网下载STM32F10x_StdPeriph_Lib固件库

    STM32F10x_StdPeriph_Lib_V3.5.0是ST公司提供的STM32固件库,是一个固件函数包,它由程序.数据结构和宏组成,包括了微控制器所有外设的性能特征.该函数库还包括每一个外设的 ...

  • Win7库文件管理器怎么用 Win7库功能及其使用方法详解

    使用window7的用户都会注意到,系统里有一个极具特色的功能——“库”,库是win7系统借鉴Ubuntu操作系统而推出的文件管理模式。库的概念并非传统意义上的存放用户文件的文件夹,它其实是一个强大的 ...

  • pitaya火云术语怎么创建术语库?

    在用火云术语的朋友都知道,火云术语是一款专业云端术语管理工具,目前已有用户在这上面管理超过 4000 万条专业术语,如果你觉得这些术语库还不够你用的话你自己可以创建术语库,那火云术语怎么创建术语库呢? ...

  • win7新增库功能是什么?

    win7新增库功能如下: 1、库中的文件夹和普通文件夹区别 它与普通文件夹的区别在于普通文件夹是保存在一个磁盘上面,而库上面的文件夹是来自不同的位置。如可以在自于用户电脑上的关联文件或者来自于移动磁盘 ...

  • 库功能让Win7变得流畅

    在Win7系统中众多新特性中,库功能被很多人认为是Windows7最大的亮点之一,它彻底改变了我们的文件管理方式,从死板的文件夹方式变得更为灵活和方便。在传统的Windows操作系统中,文件与文件夹是 ...