在表面上,對IDE的第7個版本來說Delphi的編輯器看來似乎沒有改變許多。 然而,在幕後,它是一個全新的工具。 除了用它來處理Object Pascal 語言(或Delphi語言,Borland現在喜歡如此稱呼它)的檔案之外,你現在能使用它來處理其它用於Delphi開發(諸如SQL,xml,HTML,和XSL檔案)的文件,還有其它語言(包括C ++和C# )的文件。 XML和HTML編輯在Delphi 6中已經可用了,但在這一版本中有重大變更。 例如,當編輯一個HTML檔案時,你有對於句法突出顯示與程式碼完成的支援。
用在每一檔案上的編輯器設定(包括像標籤Tab這樣的鍵的行為)依賴所開啟的檔案的副檔名。 你能在新的編輯器屬性對話框Editor PRoperties dialog box的新的Source Options page頁中配置這些設置,如在圖表1.4中顯示。這項特性已被擴展且更開放,因此你能透過提供一個為了基於XML的檔案格式的DTD或寫一個自訂精靈為其它程式語言提供句法的突出顯示。 編輯器的另一個特性,程式碼模板(code templates),現在是語言特性(你預先定義的Delphi模板在HTML或C#中將沒什麼感覺)。 ? ? ?
註解 | C#是微軟在其.NET架構中引進的新語言。 Borland 被期待在其自己.NET環境中支援C#,目前的編碼名為伽利略。 |
僅僅考慮Delphi語言,被包括IDE裡面的編輯在最近的版本中未改變許多。 然而,它有許多Delphi程式設計師所不了解且不被使用的一些特性,因此我認為這值得對它進行一個簡要考查。
Delphi編輯器允許你同時處理若干個文件,使用一個「notebook with tabs」隱喻(metaphor)。 你能從編輯器的一頁的跳到相鄰的一頁,透過按下Ctrl+Tab 快捷鍵組合(或者是按下Ctrl+Shift+Tab快捷鍵組合向相反的方向移動)。 你能拖放(drag-and-drop )編輯器上部標有單元名稱的標籤來改變它們的排序,這樣在任何給定的時間你能使用單一的Ctrl+Tab在你工作的單元之間移動。編輯器的快速選單也有一個Pages指令,在一個子選單(當許多單元被裝載時這是一個非常方便的特性)中列出所有可供使用的頁。
你也能開啟多個編輯器窗口,每個窗口都有多個標籤。 這樣做是看見彼此傍靠的兩個單元的源代碼的唯一的方式。 ( (實際上,當我需要比較兩個Delphi單元時,我總是使用Beyond Compare—www.scootersoftware.com—一個最好的成本低廉的用於比照的用Delphi 編寫的實用程式。)
幾個選項會影響編輯器,如你在圖表1.4中的編輯器屬性對話框(Editor Properties dialog box)中所見。 然而,你不得不轉向環境選項對話框(Environment Options dialog box )(見圖表1.2)的Preferences page來頁設定編輯器的AutoSave 特性。這個選項強迫編輯器在你執行程式時保存所有的原始程式文件,以防止程式在偵錯器中崩潰時(這樣的情況極少發生)的資料遺失。
Delphi的編輯器提供了許多指令,包括一些始於其WordStaremulation ancestry (早期的Turbo Pascal編譯器的)。 我將不討論各種編輯器的設置,因為它們非常直觀而且在線上說明中有描述。 然而,注意:只有當你查找shortcuts索引項目時,描述鍵盤快捷鍵的幫助的頁面作為一個整體說來是容易理解的。
技巧 | 要記住的一個技巧是使用Cut 和Paste命令不是移動原始碼的唯一的方式。 你也能選擇並且拖曳詞彙,表達式,或整個程式碼行。 此外,你能透過在拖曳時按下Ctrl鍵複製文本,而不是移動它。 |
程式碼探索者窗口,這在編輯的邊上一般地被減少,列出所有類型,變量,和日常事務在一個單元定義,加上其它出現使用中的聲明的單元。 對於複雜的若干類型,諸如類別,代碼探索者能列出詳盡的信息,包括領域,財產,和方法的一張列表。 一旦你開始在編輯中鍵入,所有資訊被更新。
你能使用程式碼探索者來在編輯中駕駛。 如果你加倍點擊程式碼探索者中的輸入之一,編輯跳躍到相應的宣告。 你也能在程式碼探索者中直接修改變量,財產,和方法名稱。 然而,如如果當你從事於你的類別時,你想要一個視覺的工具使用,你將看見,,ModelMaker提供許多更多特性。
雖然在你已使用Delphi幾分鐘之後,所有這一切功能是明顯的,但是程式碼探索者的一些特性並不是如此直覺的。 你有資訊佈局的充足控制。 同時,你能減少通常在這視窗中透過定製程式碼探索者(使樹崩潰能幫助你更迅速制定你的選擇)顯示的樹的深度。 你能透過使用對應的頁的環境選擇構成代碼探索者,作為被領進來數字1.5的。