国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 應用 > 軟件技巧 > 正文

AAuto用戶庫標準庫使用指南

2024-07-05 04:48:40
字體:
來源:轉載
供稿:網友

  首先創建對話框應用程序,打開 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 函數代碼如下:

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 准格尔旗| 廉江市| 繁昌县| 天气| 连江县| 深泽县| 兰溪市| 桐庐县| 娄底市| 奉贤区| 湘西| 景泰县| 加查县| 龙泉市| 长沙市| 铜陵市| 蒙山县| 栾川县| 高唐县| 三明市| 中江县| 温泉县| 青岛市| 柘荣县| 虞城县| 沾化县| 兴化市| 梨树县| 莎车县| 喜德县| 北票市| 襄汾县| 托克逊县| 临颍县| 岑巩县| 五大连池市| 兴隆县| 富蕴县| 新营市| 航空| 武定县|