在该对话框中设置特性名为“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知识对象应用技术
新闻热点
疑难解答