在開發程式時,程式的介面、開放性是兩個非常重要的方面,目前,在Unix系統下啟動並執行程式的介面大都比較死板,而且,在進行功能擴充時也不是很方便。那麼,能不能設計一個象Windows那樣能夠按照使用者要求隨意調整介面,功能擴充方便的程式呢?答案是肯定的。筆者通過實踐,設計了一個菜單程式,使使用者在對菜單的顯式樣式不滿意時,只需通過對菜單參數檔案進行操作即可完成對菜單位置、寬度、長度、是否有邊框等進行調整;在使用者需要進行功能擴充時,也無須改動來源程式,只須對參數檔案進行操作就可將新增功能掛到菜單上。
一參數檔案說明
本程式需要借肋兩個參數檔案來實現:
(1)、對菜單中每一項參數進行說明的檔案(menu.def),它格式如下所述:
!所屬菜單代號!項順序號!功能表項目名稱!外掛程式名稱!下級菜單代號!
說明:
1、如菜單代號為"0",則表示此項屬於主菜單
2、如外掛程式名稱為"0",則表示此功能表項目對應的過程在菜單程式內部或對應於一個子功能表;
3、如下級菜單代號為"0",則表示此功能表項目無下級子功能表;
4、項順序號同時可作為菜單熱鍵使用。
假如檔案menu.def中有下面這一行:
!0!3!格式化磁碟!format /dev/rfd0135ds18!0!
它表示主菜單的第三項為格式化磁碟,它對應的執行過程為 format /dev/rfd0135ds18,本項無子功能表。
如果使用者想把自己編的實現查詢功能程式XXX掛到本程式主菜單第4項上,則可在menu.def中增加下面這一行:
!0!4!查詢!XXX!0!
(2)、對各菜單參數進行說明檔案(menu.conf),其格式如下所述:
!菜單代號!上一級菜單代號!邊框標誌!菜單寬度!菜單行數!菜單列數!起始橫座標!起始縱座標!
說明:
1、邊框標誌為"0"表示無框,為"1"表示有邊框;
2、上級菜單代號為"-1",表示無上級菜單;
3、如菜單代號為"0",表示主菜單。
當使用者對菜單顯示樣式不滿意時,可通過調整此檔案設計個人化的介面。