??
????? 想寫出GUI的程序,REBOL/Core是不夠的,必須使用REBOL/View。REBOL/View具備Graphics與View+VID組件,用來支持GUI編程。除此之外,REBOL/View還具備一個Desktop(桌面)組件,提供一個簡單的桌面環境。目前REBOL/View最新版是1.2.x。現在REBOL Technologies公司正積極進行1.3版的軟件開發,估計今年就會推出。我們可以期待1.3版會是一個大躍進。
????? 你可以到http://www.rebol.com/view-platforms.shtml下載REBOL/View。REBOL/Core和REBOL/View可以并存,不會互相干擾。所以你可以不用先卸載REBOL/Core。【注】
【注】REBOL/View雖然包含REBOL/Core的功能,但是REBOL/View內含的REBOL/Core功能通常比較舊。所以我不移除REBOL/Core,而是同時使用REBOL/Core與REBOL/View。
安裝REBOL/View
????? 你可以選擇安裝REBOL/View,也可以不安裝。如果不安裝的話,每次執行REBOL/View時,必須使用“--noinstall”選項或“-i”選項,如下所示:
rebol --noinstall
????? 如果你已經安裝REBOL/View,且想取消安裝(uninstall)的話,必須使用“--uninstall”選項或“-u”選項,如下所示:
rebol --uninstall
????? 如果你已經安裝REBOL/View,且想再次安裝(reinstall)的話,必須使用“--reinstall”選項或“+i”選項,如下所示:
rebol --reinstall
????? 如果你不使用上述的任何選項【注】,而直接執行REBOL/View的解釋器,那么解釋器會自動判斷:如果已經安裝,就不再安裝,如果尚未安裝,就進行安裝。如下所示:
rebol
【注】這些安裝相關的選項(例如--noinstall),只有REBOL/View和REBOL/Link才有提供,其它的解釋器不支持。本文章稍后會提到REBOL/Link。
????? 安裝REBOL/View時,會出現圖1的畫面,這是授權聲明。按下圖1的【Accept】按鈕之后,就會出現圖2所示的畫面。

圖1? REBOL/View的授權聲明
????? 在圖2的畫面中,在【Installation Directory】字段輸入所欲安裝的目錄(directory),此目錄必須使用REBOL的文件路徑(path)方式,例如:“C:\REBOL\View”必須改寫成“/C/REBOL/View”。當此目錄不存在時,如果希望自動建立此目錄的話,則選取【Create above directory】(X記號表示選取);當prefs.r文件存在時,如果希望將舊的prefs.r丟棄,則選取【Override user preference】;如果希望在程序選單中出現REBOL/View的快捷方式,則選取【Create REBOL program group】;如果希望在操作系統桌面出現REBOL/View的快捷方式,則選取【Put REBOL icon on desktop】;如果希望以后可以用鼠標雙擊(double-click)REBOL script(其擴展名.r),就自動調用REBOL/View解釋器的話,則選取【Make .r file association】。按下【Install】按鈕之后,就可以進入圖3所示的偏好設置畫面。

圖2? 安裝程序
????? 在圖3所示的畫面中,在【User name】字段輸入你的名字,請勿使用中文(因為REBOL不支持雙位),請用英文。如果你希望一啟動就自動連到網絡,則選取【Auto-connect on startup】。如果你希望一啟動就自動開啟Desktop,則選取【Open desktop on startup】,否則一啟動就會自動進入REBOL console。如果你希望一關閉Desktop窗口(Desktop模式),就會自動開啟Icon窗口(Icon模式),則選取【Close box activates icon」。圖4和圖5就是Desktop窗口,圖6就是icon窗口。其實,Desktop模式雖然名為Desktop,但只是一個窗口,而Icon模式雖然名為Icon,但也只是一個窗口。一開始,你可能會對這樣名實不符的狀況感到不習慣。

圖3? 偏好設置

圖4? REBOL Desktop
????? 你可以按下【Email Setup】來設定email,按下【Proxy Setup】來設定proxy。這些設定值利用set-net函數紀錄到user.r中。關于set-net函數,請參考上期文章的介紹。按下【Save】之后,就可以進入REBOL Desktop,如圖4所示。安裝完畢!
????? 一進入圖4,就表示啟動了REBOL Desktop。如果你在偏好設置時選取了【Auto-connect on startup】,那么每次REBOL Desktop啟動時,都會先連到REBOL公司的網站去。如果你的計算機沒有連上網絡,那么啟動Desktop時會稍微延遲幾秒的時間,直到Desktop發現網絡不通。網絡聯機狀況,會出現在Desktop窗口左下角灰色區域,該區域稱為“Status Display”(狀態顯示),請參考圖5。如果你的Desktop尚未連上網絡,你可以用鼠標點擊【Status Display】(請注意,不要點擊到“View 1.2.xx”的文字),就可以進行聯機。
Desktop面板配置解說
????? 從圖4的畫面中,選擇REBOL.com的圖示,就可以進入圖5。REBOL Desktop分成六個區域,如圖5所示:分別為:
l???????? Logo(商標):REBOL的商標。點擊此處,將會在桌面模式和icon模式之間切換。Icon模式如圖6所示。
l???????? Services Bar(服務欄):服務列,這些服務可以自由修改,稍后會說明。
l???????? Bookmark Panel(書簽面板):將一些數據夾分門別類,也可以自由修改,稍后會說明。

圖5? REBOL Desktop有六個區塊

圖6? Icon模式。點擊REBOL商標會回到Desktop模式
l???????? Folder Panel(文件夾面板):顯示出目前路徑下的文件夾內容。路徑寫在上面紅色三角形旁邊。點擊路徑名稱,可以回到前一層。
l???????? Status Display(狀態顯示):提供網絡聯機和數據傳輸的信息。
l???????? Info Display(信息顯示):顯示信息以及項目說明。
默認(default)的環境下,Services Bar有四個服務【注】,分別是:
l???????? User:進入用戶偏好設置,如圖3所示。
l???????? Goto:直接連接到某個URL,如圖7所示。

圖7? 直接連接到某個URL
l???????? Help:進入help窗口,如圖8所示。

圖8? 可以利用此對話框來聯系REBOL Technologies公司,
?????????????????????? 訂閱mailing list,訂購REBOL產品
l???????? Quit:離開本系統
【注】你可以自行編輯服務,只要用文字編輯軟件(例如記事本)修改REBOL/View安裝路徑下的desktop/services.r即可。
默認的環境下,Bookmark Panel有三個書簽【注】,分別是:
l???????? REBOL.com:收集了許多REBOL官方的文件和程序。
l???????? Local:可以把本機(local)計算機的REBOL程序放到這里,以方便執行。
l???????? Console:進入REBOL console。
【注】你可以自行編輯書簽,只要用文字編輯軟件(例如記事本)修改REBOL/View安裝路徑下的desktop/bookmarks.r即可。
???? 其中,REBOL.com書簽中,有許多有趣的程序,放在“Demos”中。值得去瞧一瞧。
我建議大家一一去把玩這些程序,在順便去看看程序的源碼,可以藉此稍稍體會REBOL的能耐。
????? 執行這些程序時,REBOL Desktop會先將程序下載到本機計算機儲存之后才執行。所以,只要你執行過的程序,你都可以到REBOL/View安裝的路徑下找到源碼。例如,我的REBOL/View安裝路徑是/C/REBOL/View/,這些源碼會被放在C:\rebol\view\public\www.rebol.com\view\demos中。如果你用記事本(notepad)等軟件打開這些源碼來研究,你會很驚訝地發現,這些程序的源碼都很短。同樣功能的程序,用Java或C#來寫,程序代碼會多出許多倍。
????? 以Digital clock(小時鐘)程序來說,去除一開始沒有用處的REBOL[ ]區塊,真正有意義的程序只有下面數行:
view layout [
??? origin 0 banner "00:00:00" rate 1
??? effect [gradient 0x1 0.0.150 0.0.50]
??? feel [engage: func [face act evt]
??? [face/text: now/time show face]]
]
????? 你可以點擊Console書簽,進入REBOL console的交互模式。還記得上次文章中的Hello REBOL程序嗎?現在你可以輸入這個程序了:
>> view layout [ Title "Hello REBOL" red Button "OK" [quit] ]
????? 同樣的一行程序,在REBOL/Core的console中無法執行,但是在REBOL/View的console中卻可以執行,原因在于REBOL/Core不支持View+VID組件。想在程序中判斷你的REBOL解釋器有無支持view的功能,可以利用view?函數:
>> view?
== true
????? 如果要從REBOL console回到Desktop,則在console中輸入“desktop”,如下所示:
>> desktop
World Wild Reb
??????????? REBOL Desktop就像是網頁瀏覽器,使用HTTP通信協議來和Web Server溝通。只不過,REBOL Desktop不是用來瀏覽HTML網頁,而是用來瀏覽REBOL script程序(腳本),如圖9所示。REBOL Technologies公司將這些用來傳遞REBOL程序的Web Server和REBOL Desktop統稱為World Wide Reb【注】。
【注】顯然這名稱是從World Wide Web(WWW)所得到的構想。

圖9? REBOL Desktop利用HTTP來傳送REBOL腳本
????? 在REBOL Desktop上選擇【REBOL.com】書簽,然后選擇【Sites】,就可以進入World Wide Reb。你可以看到許多Reb網站。有些Reb網站提供一些蠻不錯的REBOL程序,但有些Reb網站則已經年久失修。你也可以寫出一些REBOL程序,放到你的網站,然后加入World Wide Reb。
????? 執行World Wide Reb程序時,請務必小心,這些程序來自四面八方,我們不能確定這些程序都是對系統無害的。如果出現了安全對話框,不要輕易選擇【Yes】或【Allow all】。
????? 執行World Wide Reb程序時,REBOL Desktop仍然會先將程序下載到本機計算機儲存之后才執行。所以,只要你執行過的程序,你仍然可以在REBOL/View安裝的路徑下找到源碼。
?
發表日期:Mar. 7, 2004