欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


天易成上网行为管理软件安装指南
360驱动大师下载的驱动在哪里
谷歌安装器怎么用?
谷歌安装器安装不了怎么办?
virtuanes怎么用?
360软件管家下载的东西在哪?
360软件管家打不开怎么办?
迅雷xv格式转换器如何使用
360天气怎么在桌面显示?
360天气插件功能介绍
AAuto用户库标准库使用指南
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

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

AAuto用户库标准库使用指南 三联

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

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

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站