在該對話框中設置特性名為“text”。
單擊【next->】按鈕,出現【windows control-get property: property variable】設置對話框,如圖23-19所示。
圖23-19 【windows control-get property: property variable】設置對話框
在該對話框中設置一個特性變量名,本例為“=ret_edt_1”。
單擊【next->】按鈕,出現“finish”設置對話框,如圖23-20所示。
圖23-20 【windows control-get property: finish】設置對話框
這是一個結束對話框,提示本知識對象使用了winctrls.u32外部函數。
單擊【done】按鈕,完成【get text from edit 1】知識對象圖標的設置。該設置表示將從第一個文本輸入框中取得text信息并存入ret_edt_1變量中。
【get text from edit 2】和【get text from mask 1】兩個設計圖標也是get property知識對象,其設置對話框與【get text from edit 1】基本相同。
不同之處在于【get text from edit 2】的控制對象為“=edt_2”,其特性變量名為“=ret_edt_2”,而【get text from mask 1】的控制對象為“=mask_1”,其特性變量名為“=ret_msk_1”。也就是,這兩個知識對象的設置將使第2個文本輸入框中取得的text信息存入ret_edt_2變量中,而使第3個文本輸入框中取得的text信息存入ret_msk_1變量中。
及時點評 在windows control知識對象中已設置了第1個、第2個和第3個文本輸入框為控制對象,并且分別設置了它們的id名為“=edt_1”、“=edt_2”和“=mask_1”,那么在后面的set property和get property知識對象中均可用這些id名作為控制對象id變量,從而設置或獲取這些控制對象的特性值。
以下的流程為一個【check】決策圖標,其附屬運算圖標中的代碼如下:
if charcount(ret_edt_1)&charcount(ret_edt_2)&charcount(ret_mak_1) then
validentry:=1
end if
這表示系統將檢查3個文本輸入框中是否均輸入了信息。如果都輸入了信息,if的條件為真,則使變量validentry的值等于1(該變量的初始值為0)。
【check】決策圖標的屬性設置對話框如圖23-21所示。
圖23-21 【check】決策圖標屬性設置對話框
由圖23-21可知,決策以計算方式執行,計算表達式為“validentry=0”。這表示當3個文本輸入框中存在空信息時,validentry值為0,表達式狀態為真,決策進入其下面的分支,一個顯示圖標顯示出要求用戶正確輸入的文字提示。如果3個文本輸入框均已輸入信息,則validentry的值為1,表達式狀態為假,決策圖標不進入分支,程序向下執行。
用戶在3個文本輸入框中輸入的信息顯示是由【buttons】交互響應圖標下的【validentry】分支完成的。
【validentry】是一個條件交互響應分支,其屬性設置對話框如圖23-22所示。
圖23-22 【validentry】條件交互屬性設置對話框
由圖23-22可知,當validentry為1時,條件滿足。而validentry為1表示3個文本輸入框均輸入信息。故當用戶在3個文本輸入框中輸入信息后,單擊【done】按鈕,進入信息檢查分支,使validentry變量值為1,從而使程序進入本條件交互響應分支。
條件交互響應分支的下級流程如圖23-23所示。
圖23-23 【validentry】分支的下級流程
該流程中共有6個知識對象圖標。
前面3個知識對象圖標都是get property知識對象,它們分別設置了從第1、第2和第3個文本輸入框獲取用戶輸入的信息并分別存入特性變量edt_1_txt、edt_2_txt和msk_1_txt中。
后面3個知識對象圖標都是set property知識對象,它們則分別將3個文本輸入框的控制屬性設為enabled,且屬性值為false。這表示將使3個文本輸入框呈現一種失效的灰色狀態。
【correct response】顯示圖標嵌入了如下代碼:
hello{capitalige(lowercase(edt_1_txt)
{capitalige(lowercase(edt_2_txt)
your shoe size is{(mas_1_txt)
因此,用戶信息在窗口下沿顯示出來。
最后一個【wait】等待圖標輸入了等待時間為10 000,所以程序會在此一直暫停等待用戶新的操作。
及時點評 該條件交互響應分支雖然放在最前面,但由于開始時條件不滿足,程序不會進入本分支。只有在進入第2分支中檢查了3個文本輸入框的信息后,使控制變量validentry值為1,才使條件響應分支條件滿足,從而進入本分支顯示正確信息。這是交互響應分支之間互相牽制的設計。
【buttons】交互響應圖標下的【clear form】分支完成清空3個文本輸入框的功能。
【clear form】是一個按鈕交互響應分支。
進入本分支時,首先執行分支附屬運算圖標中的代碼使控制變量validentry的值恢復為0。其下級流程如圖23-24所示。
圖23-24 【clear form】分支下級流程
該流程中運用了4個set property知識對象,重新對3個文本輸入框控制對象的屬性進行設置。這將使得3個文本輸入框清空,光標在第一個輸入框內閃爍,等待用戶重新輸入信息。
以上便完成了整個程序流程的分析。
在同一個交互響應結構中,可以同時存在幾個文本輸入交互響應分支,但系統僅提供一個文本輸入框。有時用戶需要在同一屏幕中有幾個文本輸入框同時存在,用戶可在幾個文本輸入框之間切換并輸入信息,這就需要創建多個文本輸入框界面,也稱多欄編輯界面。
創建多個文本輸入框有多種方法,可應用頁管理技術實現3個文本輸入框的創建,而本例則是應用知識對象創建。兩個程序創建的3個文本輸入框運行效果與功能完全一樣,但用知識對象創建的設計過程與流程就顯得容易、簡捷和方便得多了。
本例中主要應用了如下技術:
l windows control知識對象應用技術
l get property知識對象應用技術
l set property知識對象應用技術
新聞熱點
疑難解答