打開程序,屏幕上顯示如圖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 導航圖標跳轉到表達式鏈接的頁的設計
|
新聞熱點
疑難解答