地理信息系統(tǒng)—ArcView用戶界面的自定義_第1頁(yè)
地理信息系統(tǒng)—ArcView用戶界面的自定義_第2頁(yè)
地理信息系統(tǒng)—ArcView用戶界面的自定義_第3頁(yè)
地理信息系統(tǒng)—ArcView用戶界面的自定義_第4頁(yè)
地理信息系統(tǒng)—ArcView用戶界面的自定義_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、地理信息系統(tǒng)Ar 面的自定義第七章ArcView用戶界面的自定義ArcView自定義是指用戶通過(guò)調(diào)整ArcView的項(xiàng)目組件及其主菜單、按鈕條、工 具條、彈出式菜單的排列組合方式,以改變 ArcView用戶界面的基本外觀的交互式操作。ArcView的自定義操作有著自身特定的對(duì)話框,在對(duì)話框之內(nèi),用戶可以根據(jù)自己當(dāng)前研 究項(xiàng)目的特殊需要給用戶界面添加新的控制 項(xiàng),也可以刪除自己不需要的或根本用不著的 控制項(xiàng)。此外,用戶也可以添加經(jīng)常使用的腳 本,使這些腳本能夠與新增控制項(xiàng)或者基本操 作事件(如打開(kāi)、關(guān)閉一個(gè)文檔類型)相關(guān)聯(lián)。 另外您也可以簡(jiǎn)單地將它們納入到您默認(rèn)的設(shè) 置中去。為自己使用方便而自定

2、義ArcView界面,您可以為每一種默認(rèn)類型(如:View. Table.Chart、Layout、Script、Project、Appl 等) 創(chuàng)建自定義設(shè)置,從而創(chuàng)建新的用戶界面。用戶所創(chuàng)建的自定義設(shè)置可以保存成一個(gè) 名為default.apr的默認(rèn)文檔文件。該文件被貯 存于用戶設(shè)定的HOME文檔目錄之下,每當(dāng) 用戶啟動(dòng)ArcView應(yīng)用程序時(shí),系統(tǒng)將會(huì)自動(dòng) 讀取該文檔信息,并使其凌駕于系統(tǒng)默認(rèn)設(shè)置 文件之上,優(yōu)先生成用戶“自定義界面”。ArcView系統(tǒng)界面配置文件也取名為defaultapr,不過(guò)它被貯存于系統(tǒng)裝載路徑中 的etc文件夾之內(nèi),如果用戶當(dāng)前打開(kāi)的項(xiàng)目 路徑之下沒(méi)有“用戶自

3、定義的default.apr文 件力則ArcView啟動(dòng)時(shí)將自動(dòng)讀取該系統(tǒng)配 置文件,生成標(biāo)準(zhǔn)的缺省ArcView界面。第一節(jié)自定義用戶界面如前所述,ArcView的“項(xiàng)目”實(shí)際上是 由一系列組件(如:View> Table> Chart等) 所組成的文檔集合。每一種組件或文檔都具有 相似的“圖形用戶界面”(英文縮寫(xiě):GUI), 各種類型“組件”的GUI都是由3種基本控制群組所組成,分別為:菜單欄、按鈕條、工具 條。使用ArcView所提供的簡(jiǎn)單編程語(yǔ)言Avenue ,用戶可以對(duì)GUI進(jìn)行修改。比如可以添加、刪除或整理組件,可以修改每一種控 制群組的屬性值,可以對(duì)每一個(gè)組件之下的所

4、 有“控制項(xiàng)”進(jìn)行編輯??傊?,ArcView可以 使用戶隨心所欲地創(chuàng)建一種符合自身需要的自 定義界面。實(shí)際上,用戶在進(jìn)行自定義界面操作時(shí)并 不需要使用繁瑣的Avenue編程,通過(guò)雙擊 ArcView當(dāng)前界面中的按鈕條或工具條中的任 意空白區(qū),即可彈出一個(gè)能夠使您輕松完成全 部自定義工作的“自定義界面對(duì)話框”。(如圖7-1)圉7-1 田白白品里一、自定義界面對(duì)話框的內(nèi)容由圖71可見(jiàn),ArcView的自定義界面對(duì) 話框分為3大功能區(qū):1、上部區(qū)包括兩個(gè)下拉列表框和三個(gè)操作按鈕。(1) “類型"(Type)下拉列表框:包括 Project > View、Table > Char

5、t > Layouts Script. Appl七個(gè)選項(xiàng)。如圖72左幅。(2) “種類"(Category)下拉列表框:99Type: | ProjectAppl;ProjectViewTableChartLayoutScriptCategory:MenusButtonsToolsI PopupsMenus圖7-2自定義對(duì)話框內(nèi)上區(qū)的兩個(gè)下拉列表框包括Menus nUIButtons Tools > Popups 四個(gè)選項(xiàng)。如圖72右幅所示。(3) “編輯"(Edit)按鈕: 單擊它,將會(huì)彈出一個(gè)“項(xiàng)目組件自定義”對(duì)話框。操縱對(duì)話框,可以控制ArcView項(xiàng)目

6、窗口中的組件類型及其排布方式,也可修改各 組件的名稱,比如:根據(jù)視圖的實(shí)際內(nèi)容,將 原來(lái)的名稱Viewl改為“世界地圖”,將另一 個(gè)View的復(fù)制件名稱改為“中國(guó)地圖(4) “重置” (Reset)按鈕:?jiǎn)螕羲?,則放棄當(dāng)前自定義編輯,恢復(fù)界 面的系統(tǒng)設(shè)置值。(5) “創(chuàng)建用戶默認(rèn)文件” (MakeDefault)按鈕:?jiǎn)螕羲?則將用戶自定義的界面設(shè)置為'用 戶默認(rèn)文件”。文件名為:default.apr,保存在 $HOME用戶目錄之中。圖7-3項(xiàng)目組件自定義框2、中部區(qū)(控制編輯器)功能:重新組織圖形用戶界面(GUI)。用戶可以通過(guò)修改控制項(xiàng)來(lái)改變GUI的外表,配 合“描述區(qū)”下側(cè)提供

7、的三個(gè)按鈕:添加(New)、 刪除(Delete)、分隔(Separators),可以添加 新的控制項(xiàng)、刪除多余的項(xiàng)以及對(duì)控制項(xiàng)的水 平、垂直排列進(jìn)行分組(通過(guò)插入空格實(shí)現(xiàn)水 平分組,通過(guò)插入一條水平線將垂直項(xiàng)目分 開(kāi))。3、底部區(qū)(屬性列表區(qū))位于整個(gè)對(duì)話框的底部,外形是一個(gè)二維 表格。表格動(dòng)態(tài)反映出上述兩個(gè)區(qū)域?qū)?yīng)選項(xiàng) 的綜合屬性信息,這些屬性信息決定著ArcView圖形用戶界面的操作行為及外表。用鼠標(biāo)雙擊二維表的表行任意處,將彈出相應(yīng)的編輯對(duì)話框,通過(guò)對(duì)話框可以實(shí)現(xiàn)對(duì)表 內(nèi)各屬性項(xiàng)的屬性值的修改。由于表格內(nèi)各個(gè) 屬性值類型不同,雙擊則可能帶來(lái)三種結(jié)果:其一:如果該行屬性值反映的是“邏輯判

8、斷”(回答:是/否)型屬性信息,則雙擊的結(jié) 果將立即在“是/否” 之間進(jìn)行變換(比如: 原來(lái)值為Ihre,則雙 擊后變?yōu)椤癴alse")。| Appl. G et E xt ensionWin.p pl. Initialize Chart.AreaGallery Chart. B-ar Gallery Chart. ColumnG aller Chart. Erase Chart ErasePoly Chart Find RL -l I J,L:L.New.rm r j EtXrr 1其二:如果該行屬性值是一種說(shuō)明性胡字符串”信息,則雙擊之后,將彈出一個(gè)“字符 串”編輯框,在該框內(nèi)用

9、新設(shè)字符串信息取代 舊字符串信息之后,單擊“OK”即可完成編 改。其三:如果該行屬性信息是屬于“Avenue” 函數(shù)型的,則雙擊后將會(huì)彈出一個(gè)“腳本管理 器"(Script Manager),如圖7-4所示。用戶 根據(jù)需要可以在管理器的列表區(qū)選擇合適的腳 本類型,然后單擊“OK”確認(rèn)。綜合考慮各種控制項(xiàng)屬性,可將底部列表區(qū)的屬性設(shè)置功能概括如下:控制項(xiàng)可見(jiàn)與否?控制項(xiàng)是否活動(dòng)?與按鈕或工具條相關(guān)的圖標(biāo)設(shè)定 與工具條相關(guān)聯(lián)的光標(biāo)形狀設(shè)定 出現(xiàn)于狀態(tài)欄的提示信息與控制項(xiàng)相關(guān)聯(lián)的幫助主題信息被特定控制項(xiàng)執(zhí)行的Avenue腳本。小結(jié):通過(guò)對(duì)用戶界面中的菜單、按鈕、工具條以及與每一種控制項(xiàng)相關(guān)

10、聯(lián)的Avenue 腳本的控制,用戶就被賦予一種仔細(xì)設(shè)置GUI 以滿足自己的特殊應(yīng)用項(xiàng)目需求的能力。這種 能力可以使用戶以其自置的用戶界面來(lái)取代系 統(tǒng)所提供的一成不變的應(yīng)用程序外表。二、ArcVlew項(xiàng)目的自定義窗口我們知道,ArcView的項(xiàng)目窗口是由左、右兩個(gè)窗格組成的。左窗格顯示了當(dāng)前項(xiàng)目的 所有組件類型,如:View、Table. Chart等等右窗格則顯示了左窗格被選中的某一組件所包 含的所有文檔列表。與Windows操作平臺(tái)的許多應(yīng)用程序窗口相似,您可以通過(guò)鼠標(biāo)拖拉的方法調(diào)節(jié)整個(gè) 窗口的大小,但與其它“雙窗格”式視窗不同 的是,您不能用同樣拖拉的方法改變ArcView 項(xiàng)目窗口中左窗

11、格的寬度,也就是說(shuō),不論項(xiàng) 目窗口的整體怎樣改變,顯示項(xiàng)目組件的左窗 格的寬度總是不變的1、改變ArcView項(xiàng)目窗口組件布局(包括調(diào)整左窗格的寬度)的方法(1)雙擊當(dāng)前視圖工具條或按鈕條的 任意空白處,或者從“項(xiàng)目”菜單中選 擇"自定義”(Customize),彈出一個(gè) “自定義對(duì)話框”。(2) 在對(duì)話框上部區(qū)內(nèi)單擊“編輯”rm - r-r Xrzt l77t q 、 (Edit)按鈕,彈出“自定義項(xiàng)目類型” (Customize Types)對(duì)話框。圖 75(上 層為“窗口自定義對(duì)話框”,下層為以“Untitled”為名稱的項(xiàng)目窗口)在自定義對(duì)話框內(nèi),分別可以完成組件的“新建”、

12、"復(fù)制”、“刪除”、改變組件的相關(guān)屬 性(如:重命名組件標(biāo)題、改換組件圖標(biāo)、改 換“腳本關(guān)聯(lián)函數(shù)”等)、改變項(xiàng)目組件的排列 次序以及改變項(xiàng)目窗口左窗格寬度等編輯工 作。如果您選中了對(duì)話框右側(cè)上、下屬性表之 間的“立即在項(xiàng)目窗口中展示” (Show in Project Window)復(fù)選框,那么您在“自定義 對(duì)話框”內(nèi)所做的任何改變都會(huì)立即在當(dāng)前 “ArcView的項(xiàng)目窗口”中反映出來(lái)。2、“新建”(New)按鈕的作用“新建”允許用戶重新設(shè)置項(xiàng)目窗口左窗格內(nèi)的組件。單擊“新建”,ArcView將顯示出標(biāo)準(zhǔn)默認(rèn)類型的列表:Project、View> Table> Chart

13、、 Layout、Script、Appl;選定其中一種默認(rèn)類 型并單擊“OK”或者雙擊您想添加的默認(rèn)類 型名稱,ArcView自動(dòng)生成一個(gè)新類型,并把 該組件的圖標(biāo)及其默認(rèn)名稱添加到對(duì)話框左側(cè) 的組件滾動(dòng)欄的最上面,自動(dòng)進(jìn)入活動(dòng)狀態(tài)。對(duì)于Appl、Project兩種組件來(lái)說(shuō),如果新建以前就已經(jīng)存在同種組件,則新生組件的 名稱后面自動(dòng)加上1、2、3等數(shù)字后綴,以示 區(qū)別。新生組件的屬性值被置為“空”,可以進(jìn)行“刪除”操作。如果想要該組件在項(xiàng)目窗口中顯示出來(lái),則需要選定"Show in Project Window”復(fù)選框。在項(xiàng)目對(duì)話框內(nèi),新生組件將顯示于原有 同類組件之前,如果沒(méi)有同種

14、組件,則顯示于 組件展示區(qū)最上端。3、“復(fù)制"(Copy)按鈕的作用其功能是在對(duì)話框及當(dāng)前項(xiàng)目窗口中生成組件的復(fù)制品,與“新建”過(guò)程不同,“復(fù)制” 的結(jié)果將會(huì)在對(duì)話框中產(chǎn)生一個(gè)與原組件屬性 完全一致的新組件。單擊對(duì)話框左側(cè)項(xiàng)目組件列表中恰當(dāng)?shù)慕M 件圖標(biāo)選定您想復(fù)制的對(duì)象,使其高亮度顯示; 單擊“復(fù)制”按鈕,一個(gè)與原組件屬性相同的、 圖標(biāo)一致而名稱相仿(對(duì)于Project、AppI類 組件來(lái)說(shuō),復(fù)制品的名稱是在原組件名稱后順 次加上1、2、3等數(shù)字后綴)的新組件將出現(xiàn) 于組件列表最上面,且自動(dòng)進(jìn)入活動(dòng)狀態(tài)。注意:組件“復(fù)制品”可以進(jìn)行“刪除” 操作,而原項(xiàng)目組件如果內(nèi)含實(shí)質(zhì)性內(nèi)容的話,

15、 則不允許進(jìn)行“刪除”操作。4、“刪除"(Delete)按鈕的作用單擊圖標(biāo),選定對(duì)話框左手邊滾動(dòng)列表中的項(xiàng)目組件,使其高亮度顯示;單擊“刪除” 鈕,完成刪除操作。盡可能避免誤刪除,如果 不小心發(fā)生了誤操作,可以用“新建”按鈕配 合恢復(fù)原組件。也可用vCtrl+Z組合鍵撤消最 后一次操作,使原組件得以恢復(fù)。注意:您可以對(duì)“標(biāo)準(zhǔn)默認(rèn)類型”進(jìn)行刪除或重新命名,但是下一次當(dāng)您裝載ArcView 時(shí),它們將出現(xiàn)在項(xiàng)目窗口中,而且不論是對(duì) 系統(tǒng)默認(rèn)文件還是還是您自己目錄下的 Default.apr文件,結(jié)果都會(huì)一樣。另外,如果 項(xiàng)目包含被選擇用戶界面的任何文檔,那么“刪 除"按鈕將成為

16、灰色。5、項(xiàng)目窗口中的組件排序您可以使用鼠標(biāo)上下拖放的方法對(duì)對(duì)話框 左側(cè)滾動(dòng)列表中的項(xiàng)目組件進(jìn)行重新排序。您 也可以通過(guò)重排Avenue編程語(yǔ)言中的“項(xiàng)目 的VisibleGUIs列表”來(lái)達(dá)到同一目的。6、改變屬性表中的屬性值當(dāng)前活動(dòng)組件的屬性是以二列表格的形式 出現(xiàn)在對(duì)話框的右側(cè)。通過(guò)雙擊屬性表行,您 可以改變屬性設(shè)置。對(duì)于那些包含項(xiàng)目名稱或是系統(tǒng)部件的屬 性項(xiàng),雙擊將彈出一個(gè)相應(yīng)管理窗口,如圖標(biāo) 管理器、腳本管理器等等,您可以從管理器的 有效選項(xiàng)中去有針對(duì)性地進(jìn)行選擇O對(duì)于那些包含有名稱或者標(biāo)題等字符串信 息的屬性表行來(lái)說(shuō),雙擊將彈出一個(gè)允許您輸 入字符串信息的窗口。如果要清除某一屬性項(xiàng),

17、方法是先單擊選定它,然后使用Delete或Backspace鍵完成 操作。注意:所有的圖標(biāo)(Icon)屬性值都不允 許“清除”。最后還須注意兩點(diǎn):一是右上方的屬性表 最好不要修改;二是為項(xiàng)目組件選擇的新圖標(biāo) 最好要具有象征意義。選擇圖標(biāo)的方法是:雙 擊右下側(cè)屬性表的Icon表行。三、GUI控制類型(Categary)的自定義操作如圖72右幅所示,圖形用戶界面的基本控制類型有4種,分別是:菜單、按鈕、工具、彈出式菜單。以下分別對(duì)該4種類型的自定義 操作方法做以論述。1、自定義菜單( Customizing Menus )(1)給 菜單欄添加 新菜單操作方法:在自定義對(duì)話框上部 的Categary

18、下拉列表中選擇"Memis",于是, 與選定“組件”相對(duì)應(yīng)的所有“主菜單及其菜 單項(xiàng)”將顯示于對(duì)話框中部的“控制編輯器面 板”之中(如圖7-6)o單擊面板下側(cè)的“NewMenu”按鈕,ArcView將在面板之中當(dāng)前選定菜單的右側(cè)新增一個(gè)名為“Menu”的空白主菜 單。注意如果添加前您選定的不是一個(gè)主菜單 而是一個(gè)菜單項(xiàng),那么新建的主菜單將會(huì)出現(xiàn) 于整個(gè)主菜單序列的最右端?!癕enu”是新增主菜單的系統(tǒng)默認(rèn)名稱, 用戶可以通過(guò)改變菜單的"Label屬性”來(lái)變 更新菜單名,方法是:雙擊對(duì)話框下部屬性表 內(nèi)的“Label”項(xiàng)調(diào)出字符串輸入替代框,用新 的菜單名稱字符串取

19、代系統(tǒng)默認(rèn)的“Menu”, 即可完成新菜單的換名工作。但要注意:如果您在輸入新的菜單名稱時(shí)還想同時(shí)為新菜單設(shè)置一個(gè)“快捷訪問(wèn)鍵”,其方法是:在名稱字符串中想要設(shè)置為快捷鍵的字母之前加上一個(gè) 符號(hào)(參見(jiàn)圖7-6中部菜單顯示區(qū)的各個(gè)菜單項(xiàng))。這樣,Arc View就會(huì)在新界面生成 時(shí)自動(dòng)為該快捷訪問(wèn)字母增加一個(gè)下劃線標(biāo) 識(shí)。快捷鍵生成后,用戶可以通過(guò)彈擊AIt+ 字母組合鍵來(lái)快速訪問(wèn)特定菜單。(2)給指定菜單添加菜單項(xiàng)(Menuitem)操作方法:選定一個(gè)主菜單或一個(gè)菜單項(xiàng),單擊“新菜單項(xiàng)"(New Item)按鈕,ArcView 將會(huì)在當(dāng)前選定菜單或菜單項(xiàng)的下側(cè)增加一個(gè) 名為“Item

20、”的新菜單項(xiàng)。注意您每點(diǎn)擊一次按鈕,就會(huì)自上而下地新增一個(gè)“Item”。與新建"Menu”相類似,儂 Arc View GIS 3.2“Item”是系統(tǒng)給定新建菜 單項(xiàng)的默認(rèn)名稱。要改變其link Boject Windblew Project Ctrl+N名稱或?yàn)槠湓O(shè)置快捷訪問(wèn)鍵,操作方法與上述"Menu相似。Open ProjecL.Close ProjectSave Project Ctrl+S Save Project As.Extensions.Exit圖7寸文件下拉菜單中99(3)在兩個(gè)菜單項(xiàng)之間插入“分隔線"(Separator)。有時(shí),為了將下拉菜

21、單項(xiàng)按功能進(jìn)行分組,使菜單項(xiàng)分區(qū)一目了然,往往需要在菜單項(xiàng)之 間插入“分隔線”。方法是:選定其下側(cè)為另一 分組的特定菜單項(xiàng),單擊“Separator”按鈕, 則面板之中當(dāng)前選擇項(xiàng)的下側(cè)將出現(xiàn)一個(gè)空 行,這樣當(dāng)自定義結(jié)果反映到ArcView項(xiàng)目界 面中的相應(yīng)下拉菜單項(xiàng)時(shí),空行則顯示為一個(gè) 立體“分隔線”。如圖7-7的“文件”下拉菜單 所示。(4)改變主菜單或菜單項(xiàng)排列次序要改變主菜單的排列次序,方法是:鼠標(biāo)拖動(dòng)主菜單向左或向右移動(dòng),直到理想位置后 松開(kāi)鼠標(biāo)左鍵。要改變菜單項(xiàng)上下排列關(guān)系, 則需用鼠標(biāo)上下拖動(dòng),不過(guò)在此應(yīng)特別注意菜 單項(xiàng)位置的變化所引起的菜單下拉列表分組的 改變(分隔線位置的變化)

22、。(5)刪除多余的菜單或菜單項(xiàng)方法是:選定操作對(duì)象,彈擊Delete鍵。注意對(duì)“主菜單”的刪除操作將會(huì)引起其下所 屬的菜單項(xiàng)全部消失。2、自定義按 鈕(Customizing Buttons )(1)添加新 按鈕CaiejJW I Button?Moke Default圖7-8自定義按鈕及添加新按鈕視圖首先,在 “Category”下 拉列表中選定 “按鈕” (Buttons ),自定義對(duì)話框中部的“控制編輯器面板”中將隨 即展示出與項(xiàng)目組件相適用的所有系統(tǒng)默認(rèn)按 鈕類型。選定想要在其后添加新項(xiàng)目的對(duì)象按 鈕,單擊面板下側(cè)的“新建”(New)按鈕, ArcView自動(dòng)在當(dāng)前選定按鈕右側(cè)生成一個(gè)

23、空 白的新按鈕,如圖78上幅(左起第二個(gè)為新 建按鈕)。由上圖的下部屬性表“Icon”行可見(jiàn),新建按鈕的圖標(biāo)為“空白”(Empty)。如果您想 為其指定一個(gè)圖標(biāo),則須鼠標(biāo)雙擊該行,彈出 一個(gè)“圖標(biāo)管理器”(圖7-8下幅),之后單擊 選定管理器圖標(biāo)瀏覽區(qū)中符合您需求的理想圖 標(biāo),然后點(diǎn)“OK”鈕,完成圖標(biāo)設(shè)置。至于新建按鈕應(yīng)該具備什么樣的屬性,只有在進(jìn)一步熟悉了 ArcView的控制項(xiàng)屬性配置知識(shí)之后,方可正確設(shè)定。(2)在按鈕之間插入“空格” (Separator)單擊“Separator”按鈕,可以在當(dāng)前按鈕 條內(nèi)選定的按鈕右側(cè)插入一個(gè)相當(dāng)于半個(gè)按鈕 寬度的“空格。利用Separator,用

24、戶可以將當(dāng)前按鈕條中的所有按鈕按照功能進(jìn)行分組。(3)刪除一個(gè)按鈕或“空格先選定要?jiǎng)h除的對(duì)象,然后彈擊鍵盤(pán)中的Delete鍵即可。當(dāng)前對(duì)象被刪除后,其原來(lái) 位置右側(cè)的所有按鈕及空格將依次向左移動(dòng)相 應(yīng)距離。(4)移動(dòng)按鈕或空格操作方法與移動(dòng)“菜單”或“菜單項(xiàng)的方 法基本一致。3、自定義工具條(Customizing Tools )ArcView工具條內(nèi)的所有工具實(shí)際上是屬 于“工具菜單”,也就是說(shuō),它是為了操作方便 而將當(dāng)前菜單欄中的某些常用菜單項(xiàng)設(shè)置成可 以使用鼠標(biāo)直接點(diǎn)擊的“按鈕”。,人-r- 口 2 FHiTFFl r(1)給工具條 添加新的工具菜單 項(xiàng)方法是:在自 定義對(duì)話框內(nèi)選定“組

25、件類型”及“控制類型(這里為T(mén)ools)”; 在已經(jīng)存在的工具列表中選定想要在其后增加 新項(xiàng)的“當(dāng)前工具項(xiàng)”,單擊下側(cè)的“工具菜單” (ToolMenu)按鈕。ArcView立即在當(dāng)前選項(xiàng) 的右側(cè)新增一個(gè)空白的“工具菜單按鈕”(如圖79所示,左起第二鈕為新建“工具”,其下側(cè)兩個(gè)空白鈕為連續(xù)點(diǎn)擊“Tool”兩次而生成的 “新建”下拉工具)。另外,給“空白新建工具”指定圖標(biāo)的方法與上述為“新建按鈕”指定圖標(biāo)的方法相同, 這里不再重復(fù)。(2 )給整個(gè)工具條或工具菜單添加一個(gè)新 “工具”方法與1相似,只是操作時(shí)要以“Tool” 按鈕取代“ToolMemi”按鈕。注意:只有新建的ToolMenu可以使用

26、 “Tool”創(chuàng)建下拉工具,系統(tǒng)原有的工具菜單 如果沒(méi)有被指定下拉工具條,那么用戶也不可 能為其自定義下拉工具。原有的或者是新建的 包含下拉工具條的“工具菜單”,在其右下角都 有一種很小的“黑色倒三角形”標(biāo)志。(3)刪除或移動(dòng)一個(gè)工具或工具菜單項(xiàng)方法與自定義按鈕的相關(guān)方法一致。4、自定義彈出式菜單(Customizing Popups)ArcView的項(xiàng)目組件可以有彈出式菜單, 也可以沒(méi)有。除了需要在當(dāng)前活動(dòng)文檔區(qū)域用 鼠標(biāo)右鍵單擊調(diào)用之外,彈出式菜單的大部分 項(xiàng)目與視圖菜單欄中的對(duì)應(yīng)項(xiàng)的功能是完全一 致的。彈出式菜單的主要特點(diǎn)是操作非常方便 快捷。雖然每一種用戶界面可能含有零到多個(gè) Popu

27、ps,但在同一時(shí)間內(nèi)卻只有一個(gè)彈出式菜 單是活動(dòng)的。缺省情況下,在彈出式菜單設(shè)置 區(qū),通常第一個(gè),也就是最左邊的一個(gè)是當(dāng)前 活動(dòng)的Popup。您可以在“顯示區(qū)”用鼠標(biāo)左 右拖動(dòng)的方法來(lái)簡(jiǎn)單地設(shè)置當(dāng)前活動(dòng)項(xiàng)。您也 可以用Avenue腳本來(lái)完成同樣的工作(參見(jiàn) 本節(jié)稍后部分)。(1)向PopupSet編輯區(qū)添加新的彈出式 菜單首先在自定義對(duì)話框內(nèi)指定組件類型(Type)與控制項(xiàng)類型(Category Popup),ArcView自動(dòng)將現(xiàn)存的與之相關(guān)的彈出式菜單顯示于“控制編輯器面板”中(如圖7-10)o 單擊下側(cè)的"New Popup”按鈕,ArcView則 將一個(gè)名為“Popup”的新

28、的彈出式菜單添加 于當(dāng)前選項(xiàng)的右側(cè)(參見(jiàn)右圖的面板顯示區(qū)的 兩個(gè)同名菜單)。新的彈出式菜單生成后,如果想要更換其名稱,則須在對(duì)話框下部的“屬性”表格內(nèi)雙 擊其“Label”表行,在隨即彈出的字符串輸入 框內(nèi)鍵入新的名稱,單擊“OK”確定。雖然 在GUI之中,彈出式菜單的“Label名稱”并 不顯示,但是您可以使用它來(lái)定義彈出式菜單 的內(nèi)容及其作用。(2)給指定的 彈出式菜單添加新 的菜單項(xiàng)(Menu Items )認(rèn)上一U在對(duì)話框的“控制編輯器面板”中,選定想要添加菜單項(xiàng) 的彈出式菜單,然后單擊下側(cè)的“新增項(xiàng)目(New Item)按鈕,ArcView自動(dòng)在當(dāng)前彈出 式菜單下增加一個(gè)新的菜單項(xiàng)目

29、,注意每點(diǎn)擊 一下“按鈕”,將增加一個(gè)新項(xiàng)目。圖7-10彈 出式菜單列表區(qū)的最右側(cè)是在“Popup新建菜 單”之下連續(xù)增加的4個(gè)“Menu Items”的示 例,它們的默認(rèn)名稱均為“Item”,其中在第3 個(gè)與第4個(gè)Item之間還添加了一個(gè)“分隔線”(Separator )o新建的各個(gè)“Item”,其名稱都可以通過(guò)改變屬性表內(nèi)的aLabel屬性"值來(lái)變更。如果 想要在“新名稱字符串”中設(shè)置一個(gè)字母為快 捷鍵,則需要在該字母前添加一個(gè)字符 標(biāo)識(shí),這樣,在圖形用戶界面生成后,就可以 使用vAlt+字母的組合鍵直接調(diào)用該菜單項(xiàng)。注意每一個(gè)菜單項(xiàng),其快捷鍵字母都應(yīng)當(dāng)是“唯 一”的,不重復(fù)的。

30、(3)在“控制編輯器面板”中指定“活動(dòng)的彈出式菜單方法是:選定想置其于活動(dòng)狀態(tài)的彈出式菜單項(xiàng),比如圖7-10中最右端的“Popup”圖7-11快捷菜單的新建項(xiàng)。用鼠標(biāo)左鍵將其拖拉 至顯示區(qū)最左端,釋放左鍵,則該"Popup” 將被新指定為彈出式菜單活動(dòng)項(xiàng)。(4)給彈出式菜單項(xiàng)添加一個(gè)“分隔線”(Separator)添加水平“分隔線”可以將較多的菜單項(xiàng) 分成不同的邏輯群組。操作方法是:?jiǎn)螕暨x定 想要添加“分隔線”的上鄰菜單項(xiàng),點(diǎn)擊"Separator"按鈕,則當(dāng)前選項(xiàng)之下被插入一 個(gè)“空行”,當(dāng)在GUI之中右鍵單擊調(diào)用該彈 出式菜單時(shí),可以看到在該“空行”上下兩個(gè)

31、菜單項(xiàng)之間將出現(xiàn)一個(gè)立體“分隔線”(如圖7-11所不)。(5)刪除一個(gè)彈出式菜單或其菜單項(xiàng)方法是先選定要?jiǎng)h除的對(duì)象,然后彈擊Delete鍵。(6)移動(dòng)彈出式菜單或其菜單項(xiàng)方法與移動(dòng)“工具項(xiàng)”或“按鈕項(xiàng)”的方 法一致。(7)置另一個(gè)彈出式菜單為“活動(dòng)菜單” (active )如前所述,您可以通過(guò)Avenue來(lái)完成缺省活動(dòng)菜單的設(shè)置工作。舉例如下:假定您的視圖用戶界面包含3種彈出式菜單:一種支持普通功能,一種支持管理“城市 主題”的特殊功能,另一種支持管理“省區(qū)主 題”的特殊功能。在ArcView視圖運(yùn)行時(shí),您 想分3種情況分置活動(dòng)菜單:當(dāng)“城市主題處于活動(dòng)狀態(tài)時(shí),置第二種彈出式菜單為“活 第三種

32、彈出式菜單為“活動(dòng)菜單當(dāng)其它主題 處于活動(dòng)狀態(tài)或當(dāng)前沒(méi)有主題在活動(dòng)時(shí),置普 通功能菜單(第一種)為“活動(dòng)菜單”。以下是 一個(gè)腳本更新的例子,要求首先將普通功能的 彈出式菜單置為缺省設(shè)置,而其它為專門(mén)主題 服務(wù)的功能性彈出式菜單被冠于對(duì)應(yīng)的主題名 稱。動(dòng)菜單當(dāng)“省區(qū)主題”處于活動(dòng)狀態(tài)時(shí),I一 一 國(guó)腳本示例:theView=av.GetActiveDocexitend if(activePopup=nil) thenelseself.SetActive(activePopup)end該更新腳本應(yīng)當(dāng)與ArcView的視圖用戶界 面彈出式菜單設(shè)置的變更事件相關(guān)聯(lián),并位于 下列相關(guān)設(shè)置語(yǔ)句之下:av.

33、FindGUI(uView59).GetPopups.SetUpda te(uviewPopup.update?,)第二節(jié)Avenue程序語(yǔ)言初步一、Avenue 導(dǎo)言Avenue是ArcView內(nèi)置的程序語(yǔ)言與開(kāi)發(fā)環(huán)境。作為一種“面向?qū)ο蟮某绦蛘Z(yǔ)言??梢酝瓿葾rcView所有的對(duì)象(包括請(qǐng)求)的 管理工作??梢哉f(shuō),ArcView的圖形用戶界面 及其所有的文檔操作與運(yùn)行都離不開(kāi)Avenue 的語(yǔ)言環(huán)境與Avenue腳本文檔。Avenue有許多用途。如前所述,您可以使用Avenue語(yǔ)言去自定義ArcView的工作界面 與工作方式。您可以創(chuàng)建您所需要的GUI,為 交互的圖形控制項(xiàng)設(shè)置內(nèi)部屬性。您甚

34、至可以 用Avenue語(yǔ)言開(kāi)發(fā)出一種基于GUI的完整的 應(yīng)用程序。此外,您還可以將已經(jīng)編寫(xiě)好的Avenue 腳本與諸如打開(kāi)或關(guān)閉一個(gè)項(xiàng)目一類的其它操 作事件相鏈接。二、面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的基本原理近年來(lái),面向?qū)ο蟮南到y(tǒng)與程序語(yǔ)言普遍受歡迎。描述一種“面向?qū)ο蟮沫h(huán)境”的最好 的方式也許就是將其與其他更多的傳統(tǒng)程序設(shè) 計(jì)環(huán)境相比較。在如同F(xiàn)ortran或C的傳統(tǒng)程 序語(yǔ)言環(huán)境之中,不同語(yǔ)言的差別主要表現(xiàn)在“數(shù)據(jù)”與展示數(shù)據(jù)的“動(dòng)作”之間。這些以 編程工具建造的應(yīng)用程序經(jīng)常分享著一個(gè)強(qiáng)大 的中心焦點(diǎn)。這樣,在那些象“速算表”或者“Dbase” 管理系統(tǒng)的應(yīng)用程序之間,一個(gè)明顯的區(qū)別就 表現(xiàn)在應(yīng)用程

35、序與被應(yīng)用程序操縱的數(shù)據(jù)之 間。然而,在一個(gè)“面向?qū)ο蟮南到y(tǒng)”之中,一切都被視作“對(duì)象數(shù)據(jù)是對(duì)象、應(yīng)用程序 是對(duì)象,甚至連用戶界面都被看成是一個(gè)統(tǒng)一 的系統(tǒng)環(huán)境之中的對(duì)象。在這樣的程序語(yǔ)言之 中,描述數(shù)據(jù)的對(duì)象與那些專用于數(shù)據(jù)建模的 工具對(duì)象之間的區(qū)別之不過(guò)是被指定的內(nèi)部屬 性不同罷了。在這種系統(tǒng)中,各個(gè)對(duì)象之間的關(guān)系由一個(gè)正式建立的等級(jí)分類所圈定。一個(gè)類就是一 個(gè)由一些具有相似的普通屬性的對(duì)象所構(gòu)成的 模板。一個(gè)孤立的對(duì)象就是一個(gè)類的特例。比 如:一個(gè)項(xiàng)目可能包含許多“視圖”,而其中的 每一個(gè)視圖就是一個(gè)“視圖類”的特例。因?yàn)椤邦悺笔菍?duì)象,所以它們可以依次與 更高級(jí)的或者是更多的同級(jí)類發(fā)生聯(lián)

36、系(如圖7-12)o這樣,視圖類就應(yīng)是比其自身更普遍的文檔類的成員,而文檔類的主要成員除過(guò)“視 圖類”之外,還可能包括“表格類、“圖表類”、“圖面配置類”以及“腳本編輯器”等。所有 文檔類的成員都繼承著“文檔總類”的通用屬 性。而組成類的單獨(dú)成員則繼承著將它們統(tǒng)一 在一起的附加屬性?!皩?duì)象”通過(guò)相互傳遞“請(qǐng)求”而相關(guān)?!罢?qǐng)求”是一種機(jī)制,它可以控制一個(gè)對(duì)象。如打開(kāi)視圖的請(qǐng)求、返回一個(gè)對(duì)象的相關(guān)信息 的請(qǐng)求、獲得當(dāng)前活動(dòng)視圖的請(qǐng)求等等。以“獲 得當(dāng)前活動(dòng)視圖”的請(qǐng)求為例來(lái)說(shuō)明:該請(qǐng)求 將作為一個(gè)對(duì)象被發(fā)送到Avenue中,結(jié)果返 回了另一個(gè)對(duì)象,該對(duì)象就是包含了視圖名稱 的字符串。一個(gè)Avenu

37、e語(yǔ)句是由“對(duì)象”以及發(fā)送給對(duì)象的“請(qǐng)求”所構(gòu)成的。返回的對(duì)象既可 以被貯存到一個(gè)變量之中,也可以作為另一種“請(qǐng)求”再次傳遞出去。當(dāng)然,“請(qǐng)求”也可以 接受“條件”,只有當(dāng)條件符合時(shí)才會(huì)返回一個(gè) 對(duì)象。比如:一種只是為了 “尋找一個(gè)具有指 定名稱的主題”的請(qǐng)求,就必然要接受一個(gè)“條 件”。三、Avenue腳本一個(gè)Avenue腳本,實(shí)質(zhì)上就是一種由一 系列Avenue語(yǔ)句組成的,能夠完成特定任務(wù) 的計(jì)算機(jī)程序。下面討論兩個(gè)Avenue腳本的 例子:例一:與“放大”(Zoom In)菜單項(xiàng)相關(guān) 聯(lián)的Avenue腳本程序背景:從視圖菜單欄內(nèi)的“視圖”菜 單中選取“放大”(Zoom In)項(xiàng),其對(duì)應(yīng)的

38、Avenue腳本控制語(yǔ)句如下:theView=av.GetActiveDoctheView.GetDisplay.ZoomIn(125)第一個(gè)語(yǔ)句是將"請(qǐng)求"GetActiveDoc返回的“對(duì)象” av指派給變量theView。第二個(gè)語(yǔ)句的意思是:將GetDisplay.對(duì)活動(dòng)文檔的“請(qǐng)求”作為返回“對(duì)象”,順序傳遞 給“Zoomln”請(qǐng)求(注意:活動(dòng)文檔可以返回 當(dāng)前視圖能夠被拖拉選中的任意屏幕區(qū)域)。放 大(Zoomln)請(qǐng)求會(huì)將語(yǔ)句給定的數(shù)值作為其 操作的依據(jù)條件,上例中數(shù)值為125。這樣,在以上兩行腳本中,活動(dòng)視圖的范圍被“對(duì)象”確定,而且由指定的125%的數(shù) 值因

39、子而產(chǎn)生最終的縮放結(jié)果。另一方面,用戶也可以通過(guò)單擊“視圖工 具條”中的“放大”工具來(lái)完成相同的縮放操 作。對(duì)于縮放所依據(jù)的條件,您要么在視圖中 用“放大”工具拖拉出一個(gè)您所希望的矩形放 大框,要么直接用鼠標(biāo)點(diǎn)擊出一個(gè)放大中心點(diǎn), 兩種條件與方式都可滿足視圖放大的需要。如108果在一個(gè)Avenue腳本中要同時(shí)照顧兩種方式,則相應(yīng)腳本如下:例二:與“放大”工具相關(guān)聯(lián)的Avenue腳本theView=av.GetActiveDoc r=theView.ReturnUserRectd=theView.GetDisplay if(r< >nil) then d.ZoomToRect(r)e

40、lse d.ZoomIn(125)d.panTo(d.ReturnUserPoint) end與上一個(gè)腳本一樣,本腳本的第一句的功能也是返回當(dāng)前活動(dòng)文檔的名稱,并將其指派 給變量theView;第二句的功能是:將用戶在 視圖中拖拉出的矩形框作為輸入值,一個(gè)ReturnUserRect請(qǐng)求被建立于活動(dòng)視圖之上,并將該矩形的范圍值指派給變量r;第三句使 用GetDisplay請(qǐng)求獲取活動(dòng)視圖的顯示范圍,109然而該句與上一個(gè)腳本第三句的只是傳遞一個(gè) 放大請(qǐng)求不同的是,它將顯示區(qū)范圍值直接指 派給變量d。從第4句開(kāi)始到第8句,本腳本使用了“條件語(yǔ)句”。首先考察指派給變量r的值,如果其 值不等于0 (

41、例如當(dāng)用戶在視圖中拖拉出一個(gè) 合法的矩形框時(shí)),那么,該矩形的范圍值將作 為ZoomtoRect請(qǐng)求的依據(jù)條件,也就是變量如果用戶沒(méi)有在當(dāng)前視圖中拖拉出一個(gè)合 法的矩形框(比如他只是在視圖顯示區(qū)內(nèi)單擊 了一下鼠標(biāo)左鍵),那么r的值將等于0,這樣 將直接導(dǎo)致else及其以下語(yǔ)句被執(zhí)行。在此情 況下,Zoomln請(qǐng)求再次依據(jù)“125”的條件去 運(yùn)行,使當(dāng)前顯示區(qū)范圍(d變量)圍繞中心 點(diǎn)按125%的比例而放大。結(jié)果,顯示區(qū)范圍 也自然被定位于視圖中心或者將用戶原來(lái)單擊 的那一點(diǎn)推移至放大后的視圖中央。第8句實(shí) 質(zhì)上就是將從ReturnUserPoint對(duì)當(dāng)前顯示區(qū)(d變量)的請(qǐng)求中返回的點(diǎn)位作為“

42、PanTo請(qǐng)求的作用點(diǎn)。這樣,在這4個(gè)條件語(yǔ)句中,當(dāng)前活動(dòng)文 檔被確定,而且縮放顯示通過(guò)兩種方式之一來(lái) 完成,即要么依據(jù)用戶在視圖中指定的矩形區(qū) 域,要么依據(jù)在視圖顯示區(qū)指定的一個(gè)點(diǎn)位來(lái) 縮放。四、Avenue的語(yǔ)法本節(jié)不想對(duì)Avenue的語(yǔ)法做過(guò)多的描述, 只是為了使讀者順利讀懂Avenue腳本而提供 了一個(gè)快捷的語(yǔ)法指導(dǎo)。1、“對(duì)象”與“請(qǐng)求”混合語(yǔ)句的書(shū)寫(xiě)方法如前所述,在Avenue程序語(yǔ)言中一般都包含著較多的用于發(fā)送“對(duì)象”的“請(qǐng)求”。給 對(duì)象發(fā)送“請(qǐng)求”的最普通格式就是在描述“對(duì) 象”的字串之后緊跟一個(gè)“請(qǐng)求”字串,而兩 者之間用“句號(hào)”或“圓點(diǎn)號(hào)”分隔。比如: 在 theView.

43、GetDisplay 語(yǔ)句片斷中,theView 就是一個(gè)“對(duì)象",而GetDisplay則是給該對(duì) 象發(fā)出的操作“請(qǐng)求,在同一個(gè)Avenue語(yǔ)句中,允許同時(shí)使用多個(gè)“請(qǐng)求”,但“請(qǐng)求”與“請(qǐng)求”之間也必 須以“圓點(diǎn)號(hào)”相分隔。如上例之中就有這么 一個(gè)語(yǔ)句:theView.GetDisplay.ZoomIn(125)2、變量賦值語(yǔ)句的寫(xiě)法在Avenue語(yǔ)句中,指派給一個(gè)變量的“對(duì) 象”必須使用“等號(hào)”。比如:theView=GetActiveDoc就是一個(gè)賦值語(yǔ)句,它表示要將GetActiveDoc請(qǐng)求返回的對(duì)象直接 指派給變量the Vie Wo注意:如果一個(gè)字符串被指派給一個(gè)變量

44、, 則該字符串必須用雙引號(hào)括起來(lái)。如:賦值語(yǔ) 句 theProv="陜西省"、theCont=wChina59 o3、語(yǔ)句中大、小寫(xiě)的約定雖然Avenue腳本的執(zhí)行不區(qū)分大小寫(xiě), 但為了便于檢查,或者使自己或別人能順利讀 懂語(yǔ)句,在腳本的實(shí)際寫(xiě)作中仍需要尊人一定 的習(xí)慣:即“變量名”以小寫(xiě)字母開(kāi)頭,而“對(duì) 象”與“請(qǐng)求”則以大寫(xiě)字母打頭。4、括號(hào)的使用在Avenue腳本中,所有給“請(qǐng)求”提供數(shù)值依據(jù)的“條件”條件語(yǔ)句中的“條件”括號(hào)”括起來(lái)。上例中的if(rv >nil)then語(yǔ)句就是如此。5、“注釋”信息的書(shū)寫(xiě)語(yǔ)法規(guī)定:腳本之中的所有“注釋”信息,不論是單獨(dú)成行的

45、,還是跟隨在Avenue語(yǔ)句 之后,都必須以“單引號(hào)”或“單撇號(hào)”打頭。如下例:'This entire Line is a comment.(英文字 串獨(dú)立成行)theView=GetActiveDoc6Get theactiveview document.(英文字串加在語(yǔ)句之后)'上行語(yǔ)句意欲“將獲得的視圖文檔指派 給變量theView”。(漢字字串獨(dú)立成行) 五、Avenue腳本的創(chuàng)建與調(diào)試1、生成Avenue腳本的步驟 共分5步。即:(1)調(diào)用“腳本編輯器”,輸入Avenue 語(yǔ)句;(2)匯編(Compile)腳本(3)調(diào)試(Debug)腳本(4)運(yùn)行(Run)腳本(5

46、)將腳本與任意的控制項(xiàng)(Control)鏈接2、創(chuàng)建腳本的方法雙擊ArcView項(xiàng)目窗口左窗格中的“腳本(Script)圖標(biāo),或者先單擊該圖標(biāo),然后再 點(diǎn)擊窗口頂部的“新建”(New)按鈕。圖7-12新建腳本的方法及“編輯器”117兩種操作方法都將彈出一個(gè)“腳本編輯器窗口”(Script Window),如圖 7-13 內(nèi)框。注意:ArcView的腳本組件與其它任何組 件一樣,都有可能包含多個(gè)(腳本)文檔,您 只能一次選定一個(gè)活動(dòng)文檔,并對(duì)它進(jìn)行各種 操作。當(dāng)一個(gè)腳本編輯窗口成為當(dāng)前活動(dòng)文檔 時(shí),ArcView的圖形用戶界面就會(huì)轉(zhuǎn)換成適應(yīng) 該腳本各種操作的相應(yīng)界面(參見(jiàn)圖7-12大窗 口上部G

47、UI)o該界面也會(huì)因?qū)δ_本操作的目 的的不同而不同。圖714是針對(duì)腳本的GUI 菜單的各控制項(xiàng)示例。由圖可見(jiàn),“編輯”菜單設(shè)置了與腳本編輯有關(guān)的實(shí)用控制項(xiàng)。而“腳本”菜單則視腳本 創(chuàng)建步驟的不同其可用選項(xiàng)也有所不同。圖的中幅為腳本輸入與編改階段的菜單視圖,右幅 則是當(dāng)中幅菜單的“匯編”(Compile)被選定、 腳本創(chuàng)建進(jìn)入?yún)R編(編譯)階段時(shí)的菜單視圖, 注意圖中可用菜單控制項(xiàng)的增加情況。此外,Avenue腳本既可以直接在“腳本編Script Window JUndoCtrkZEind.贏螂F3Replace.CuiCtrlfXCopyCtrkCEasteDrkVSelect AllDelet

48、e Left Ctrl+UCommentBemove Comment目Window HelpWiridov-j HefoEroperties.Eroperties.Compile§.tep嬲加nF5StepF8BunF5TaggiiBjeakpaimClear All Breakpoints 屏則整詢膽晚“廖震Toggle BreakpointClear fill BreakpointExamine Variables. Ctrl+ELoad System Script.Load 工ext File.Write Text File.Load System Script.Load I

49、ext File.鬼rite Text File.Embed ScriptScript.Embed Script “后岫翅口加電, _“ rtLrt r A ”輯器”內(nèi)通過(guò)輸入而新生,也可以從一個(gè)文本 文件或已經(jīng)存在于ArcView之中斷系統(tǒng)腳本” 中導(dǎo)入,導(dǎo)入的工具分別為“腳本菜單”中的“Load System Script” 以及"Load Text File”。 (參見(jiàn)圖713中、右幅)一般來(lái)說(shuō),為了進(jìn)一步熟悉Avenue腳本Q Seriptl|一the View - av . GetAct iveDcc.f ound =p = theVieu . Get Display Re

50、 t u r n User Po i ri t for each t m t he V i cv. Get Ac 11 vdlicnosif ( (t .HasActribuces) and (t.GetHotField < > nil) ) then rezs = t FindByPoint(p) for each rcc m xccsthsField = t .GecHotFieid found - truetheVal = t .RGCurnValuGStringC theFiGid.G0tNarriGz rez) av .Run(t.fetHotSeriptNamez th

51、eVai) end ©nd end if (not found) thenSysteM.Bsepund«lI 2_P皮1 7_1匚=國(guó)山一入口右的內(nèi)部組織及語(yǔ)法約定,用戶可以隨時(shí)通過(guò) "Load System Script”菜單調(diào)出系統(tǒng)已有的腳 本進(jìn)行分析研究。圖7-14是一個(gè)調(diào)出的 “View.HotLink腳本”的實(shí)例。G SeriptltheView - av. GetAct iveDcc/f ound = faloo p = theVieu.GetDisplay ReturnnserPointfor each 匕 in t he V i cv. Get A

52、c 11 vcllicneif ( (t .HasActribuces) and (t. GetHotField < > nil) ) then reza = t FindByFoint(p) for each rcc in xccg thsField = c .GecHotFieid found - true th©Vai = t .RGturnVaLuGStringC theFiGld.GstNarriGz roz) av.Run(t. fetKotScriptNarnez the Vai) end©nd end if (not found) then Sy

53、steM.Bsepund"I 2_F團(tuán)>7 1 /】田山一人口右(三)對(duì)成熟腳本進(jìn)行“匯編”(Compile) 當(dāng)一個(gè)Avenue腳本編輯完成后,使用按 鈕條中的“匯編”(Compile)按鈕,或者調(diào)用118“腳本”主菜單下的“匯編”(Compile)菜單 項(xiàng),均可以將當(dāng)前腳本轉(zhuǎn)換成一種可執(zhí)行格式。注意:腳本只有在被執(zhí)行了 “匯編”(編譯)之后,才能進(jìn)一步執(zhí)行“運(yùn)行”、“鏈接”等操 作。否則,后續(xù)的任何操作選項(xiàng)或按鈕都是“不 可選”(灰色)的。3、腳本“調(diào)試” (Debug)及“運(yùn)行又Rim)在大多數(shù)情況下,用戶新編的腳本在“運(yùn)行”時(shí),會(huì)難免有某些錯(cuò)誤出現(xiàn)。比如:缺少 的執(zhí)行的

54、“條件”、變量書(shū)寫(xiě)有誤、在系統(tǒng)內(nèi)置的文檔類中找不到用戶鍵入的某些對(duì)象(如"請(qǐng)檢查及修正錯(cuò)誤的最好的辦法是不斷調(diào)用“調(diào)試"工和“運(yùn)行”操作。其中,“運(yùn)行”回國(guó)囹四畫(huà)圖 7-15操作會(huì)將腳本的錯(cuò)誤按順序依次顯示出來(lái)。而 “調(diào)試”則有幾個(gè)實(shí)用按鈕工具可以借用。(如 圖715,其中,左一為“編譯”鈕;左二為“運(yùn) 行”鈕)。1、“分步”(Step)按鈕(左起第三鈕)其功能是使用戶可以按次序分步瀏覽和檢查腳本語(yǔ)句。每單擊一次該鈕,黃色高亮度顯 示區(qū)向后跳動(dòng)一個(gè)“對(duì)象”。2、“套索定位斷點(diǎn)“(Toggle Breakpoint) 按鈕(右起第二鈕)其功能是在當(dāng)前腳本中設(shè)置運(yùn)行“斷點(diǎn)”。即

55、控制“運(yùn)行查錯(cuò)”至斷點(diǎn)處結(jié)束。3、“檢查變量”(Examine Variables)按鈕(右起第一鈕)功能是調(diào)出腳本中所有變量的列表窗(圖0KtheViewGlobalsVariables: LocalsLocalsrm7-16),在窗口中逐一檢查變量名稱及其書(shū)寫(xiě)語(yǔ) 法。窗口提供了一種迅速排列腳本變量并即時(shí) 修正其錯(cuò)誤的方式。修改無(wú)誤后單擊“OK” 確定。131最后需要強(qiáng)調(diào):只有當(dāng)一個(gè)腳本能夠在腳本窗口中順利運(yùn)行語(yǔ)法檢查沒(méi)有報(bào)錯(cuò)時(shí),ry ,r tS? tZf建立腳本與“項(xiàng)目”事件的“鏈接該腳本才可以與任意一個(gè)已經(jīng)存在的或者用戶 新建的ArcView控制項(xiàng)相關(guān)聯(lián),使其真正成為 系統(tǒng)的一部分。六、

56、腳本與ArcView對(duì)象的“鏈接” (Link)在ArcView的項(xiàng)目 窗口屬性管理中,單擊 選中“項(xiàng)目”菜單下的“屬性”項(xiàng),打開(kāi)“項(xiàng)目屬性對(duì)話框”(如圖7-17)o在該對(duì)話框中,您可以將您創(chuàng)建的或系 統(tǒng)原有的腳本與項(xiàng)目的“開(kāi)始”(Startup)及 “關(guān)閉"(ShutDown)事件相鏈接。也就是說(shuō), 當(dāng)項(xiàng)目被啟動(dòng)時(shí),在執(zhí)行默認(rèn)文件之前, ArcView首先打開(kāi)“開(kāi)始腳本”;當(dāng)項(xiàng)目被“關(guān) 閉”時(shí),ArcView自動(dòng)執(zhí)行您指定的“關(guān)閉腳 本建立“鏈接”的方法是:在圖7-18的“Startup”和“ShutDown”文本輸入框內(nèi)輸 入您想要設(shè)置的腳本名稱。或者單擊文本輸入 框右側(cè)的腳本打開(kāi)按鈕,也可以彈出“腳本管 理器列表”,在列表中找到并雙擊您想設(shè)置的腳 本即可。注意:在這里,人工輸入的腳本名稱必須 完整有效,同時(shí)該腳本還必須事先被納入到當(dāng) 前項(xiàng)目目錄的腳本管理器列表中去。另外,項(xiàng) 目及腳本的存貯目錄也可以在圖7-18所示“項(xiàng) 目屬性對(duì)話框”的“工作目錄” (WorkDirectory)文本框中重新設(shè)置。2、建立腳本與控制項(xiàng)的“鏈接”在本章前面所述的“自定義ArcView”部 分中,您已經(jīng)了解了怎樣用“自定義窗口”設(shè)置自己的圖形用戶界面。實(shí)際上,您除了可以 工具的內(nèi)部“控制項(xiàng)”

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論