打开程序,屏幕上显示如图28-1所示的程序流程图和如图28-2所示的程序运行主画面。
图28-1 程序流程图 图28-2 程序运行主画面
在图28-1中,【run to view documentation】设计图标完成发布一个声明并运行程序到主画面的功能,其余设计图标则完成运行程序实例的功能。
在如图28-2所示的主画面中有如下3个按钮:
l 【introduction】——程序简介
l 【a help system】——程序流程图标设计说明
l 【run the example】——运行实例
单击【run the example】按钮,程序进入实例演示分支,其运行画面如图28-3所示。
画面上显示一个【activate help】按钮,单击此按钮,画面左侧显示出3行帮助系统目录,右侧显示出3个按钮,如图28-4所示。
鼠标移至目录上变为手形,单击某行目录,画面显示出与本目录相关的内容。单击【help topics】按钮,恢复如图28-4所示画面。
单击【find】按钮,弹出查找对话框,输入欲查找的关键字。再单击【find】按钮,查找到的相关页标题显示在查找对话框中。单击选中某页,单击【go to page】按钮进入该页,画面显示该页内容。所查关键字以高亮显示。
单击【close help】按钮,关闭帮助系统画面,返回如图28-3所示的画面。
图28-3 实例运行画面 图28-4 进入帮助系统画面
打开【activate help】群组图标,其下级流程如图28-5所示。
图28-5 【activate help】下级流程图
【help topics】框架图标下设置下4个设计图标,构成了本框架内的4页。其中首页为【help topic menu】群组图标,其他3页均为显示图标。3个显示图标中分别输入了与帮助目录相关的内容。
本帮助系统的设计思路是将帮助的题目设置成一个列表并显示于屏幕上,用户单击目录中的某一行便跳转到相关页面中去。这一功能是在框架图标的首页【help topic menu】群组图标中完成的。该群组的下级流程图如图28-6所示。
图28-6 首页的下级流程图
【build topic list】运算图标中的代码创建了帮助系统目录表,其代码如图28-7所示。
图28-7 【build topic list】创建目录表代码
及时点评 用repeat with语句创建了helptopiclist列表变量,且列表中的3个元素名称就是“help topics”框架图标中的第2页、第3页和第4页的标题。这是一个设计技巧,并且由于每个元素中加入了“return”符,因此,helptopiclist列表变量显示出来时菹蛳允荆疵扛鲈兀刻醢镏柯迹└髡家恍小?/span>
如图28-6所示的流程图中设计了一个【select topic】交互响应图标,其下仅含一个热物体交互响应分支。由如图28-8所示的热物体交互响应属性设置对话框可知,帮助系统目录表被设置成为热物体。因此,用户单击目录表,响应匹配,进入本分支。
图28-8 【jump to help topic】热物体交互属性设置
分支下的导航图标有一个附属运处图标,其中代码为:
helptopic:=getline(helptopiclist, lineclicked)
helptopic变量中将保存用户单击的目录表某一行的字符,也就是说,helptopic变量中保存了“hint for using find”、“how to add a topic”和“topic3”这3个标题中的某一个。
【jump to help topic】导航图标属性设置对话框如图28-9所示。
图28-9 【jump to help topic】导航图标属性设置对话框
由图28-9可知,该导航图标导航走向为计算方式,计算表达式中应用了eval系统函数,该函数的功能是计算其后面表达式的值。
由于helptopic变量中保存了目录表中的一行目录,而目录名称与框架图标中第2~4页的设计图标名称一致,因此eval计算表达式的结果将是框架图标中某页的id码,因此,导航图标根据计算结果跳转到框架的某页中。
及时点评 本例帮助系统的建立与运行经过了如下几个步骤:
(1)将框架中第2~4页的设计图标名称作为帮助目录表的元素项。
(2)在图标中嵌入目录表变量使帮助目录显示于画面上。
(3)设置目录表为热物体,单击它可产生交互响应。
(4)应用getline函数取得用户单击目录表中的具体目录。
(5)通过导航图标跳转到目录相关页面。
框架图标本身由输入和输出层组成。并且程序进入框架时首先执行输入层的流程,然后自动进入首页。【help topics】框架的输入和输出层流程如图28-10所示。
图28-10 【help topics】框架输入层流程
设框架输入层是由一个交互响应图标和3个导航图标组成的按钮响应分支构成。其中,【find】导航分支属性设置对话框如图28-11所示。
图28-11 【find】导航分支属性设置对话框
由图28-11可知,本分支在当前框架中寻找与某关键词相匹配的页并跳转到该页中去。
【close help】导航分支属性设置如图28-12所示。
图28-12 【close help】导航分支属性设置对话框
由图28-12可知,本分支将退出框架,关闭帮助系统画面,程序返回主流程【activate help】交互响应入口处。
【help topics】导航分支属性设置对话框如图28-13所示。
图28-13 【help topics】导航分支属性设置对话框
由图28-13可知,本分支使程序跳转到框架第1页,即再次进入帮助系统目录页,等待用户再一次选择目录。
及时点评 框架输入层的3个按钮设计,实现了框架内查找浏览的管理,并且通过导航图标的跳转设置,完成再次进入目录页和退出框架的功能。
【find】、【close help】和【help topics】这3个按钮均设置为进入框架后永久有效,且分支跳转都是“return”, 即返回调用处。
及时点评 按钮“永久有效”的设置使得3个按钮在程序进入框架运行的整个期间都是有效存在的,因此用户可随时单击它们而进入各自分支执行。并且3个分支跳转均为return的设置,保证了程序在执行完本分支后返回调用处继续程序。
本程序设计了两类导航跳转:一是框架输入层中的导航跳转;二是框架输入层外的导航跳转。
框架输入层中共设置了3个导航图标,它们分别完成在本框架内“查找与某关键词相匹配的页”并跳转到该页、跳转到首页以及退出框架的功能。而如图28-6所示,【jump to help topic】导航图标是框架输入层以外的导航图标。用户单击帮助目录热物体后进入该导航图标执行导航跳转。
该导航图标的属性设置如图28-9所示。
由设置可知,【jump to help topic】导航走向为计算式,其计算表达式如下:
eval("iconid/""helptopic"/"")
该表达式的运算结果是获得字符串变量helptopic 中存储的内容所代表的设计图标的id标识。由于helptopic 变量中保存的是帮助目录中的一行,而帮助目录表又与框架第2~4页设计图标名称一致,因此,导航图标将跳转到框架中第2~4页的某一页。
及时点评 在流程线的任何位置均可放一个导航图标,并且通过设置使程序从此处跳转到需要的页中去。但程序中必须存在有框架页结构,因为导航跳转是针对页图标而不是其他任何图标。
灵活设置框架与导航的配合,可实现程序的复杂跳转。
本实例通过框架页管理设计,实现了一个简单的在线帮助系统的功能。即用户通过单击帮助目录,使程序跳转到相关页面浏览。
本例中主要应用了如下技术:
l 框架页结构设计
l 框架输入层流程设计
l 帮助目录表的创建
l 设置目录表为热物体的设计
l 取得单击目录表中某一行的设计
l 导航图标跳转到表达式链接的页的设计
新闻热点
疑难解答