天天看點

Delphi Code Editor 之 幾個特性

Delphi Code Editor有幾個特性在編寫大規模代碼時非常有用。下面分别進行介紹:

1、Code Templates(代碼模闆)

使用代碼模闆可把任意預定義代碼(或正文)插入到單元檔案中。當在Code Editor中編輯代碼時,按下鍵盤的【Ctrl + J】,就可使用代碼模闆;此時會彈出一個清單框,其中列出了可供選擇的模闆。從清單中選取一個模闆,按下Enter鍵,與所選模闆相對應的正文就會被插入到單元檔案中。如下圖:

Delphi Code Editor 之 幾個特性

可以通過“Environment Options”對話框的“Code Insight”頁面來增加新模闆或編輯現有模闆;當然,也可以用文本編輯器打開代碼模闆檔案,編輯其中的代碼模闆。代碼模闆檔案為DELPHI32.DCI,位于Delphi安裝目錄下Bin目錄中。

可自由修改代碼模闆。例如,可以這樣修改代表for語句的代碼模闆:

1

2

3

4

for I := 0 to Pred(|) do

begin

end;

注意上面的管道符(|)。代碼模闆入中中的管道是一個位置辨別符,它決定正文插入代碼中光标所在位置。

Tip

如果對代碼模闆檔案進行了大修改,一定要對修改過的代碼模闆檔案進行備份,以備以後使用。因為當更新或重新安裝Delphi時,Delphi安裝程式會覆寫掉修改過的DELPHI32.DCI檔案。

代碼模闆不僅僅隻用于代碼。例如下面的代碼:

5

{****************************************************}

{*               Filename and Version               *}

{*         Copyright(C) pchmonster 2012        *}

{*               All rights reserved.               *}

{****************************************************}

這段注釋版權資訊基本是不變化的,是以可将它做成一個模闆,以便在新建立的單元中快速将此版權資訊添加進去。可以把日常程式設計中經常使用的正文做成代碼模闆。

2、Code Parameters(代碼參數)

Code Editor的代碼參數特性實作一個提示窗(Tooltip),給使用者提示VCL方法或API函數所需的參數資訊。有好幾百個VCL方法和Windows API函數,要記住每個函數的參數是十分困難的。當使用者鍵入一個方法名時,代碼參數特性為使用者顯示該方法的參數,進而節省使用者的事件。比如說調用SetBounds方法,當鍵入左括号後,彈出提示窗,如下圖:

Delphi Code Editor 之 幾個特性

提示窗中列出了每個參數,馬上要鍵入的參數以粗體顯示,鍵入一個參數後,其後的參數又以粗體顯示,直至輸入完所有參數。待鍵入所有參數後,代碼參數提示窗就會消失。可在“Environment Options”對話框的“Code Insight”頁面設定代碼參數選項。

3、Code Completion(代碼完成)

加入一個類變量名和點操作符(.),Code Editor就會顯示一個清單框,其中列出該類的所有屬性和方法。比如說,有一個Memo元件,鍵入:

Memo.

并稍停頓一下,就會彈出如下的清單框:

Delphi Code Editor 之 幾個特性

接下來,可用兩種方法來選擇表中的項。

  • 方法一、用滑鼠或鍵盤指定清單框中的一個屬性或方法,按Enter鍵,則指定的屬性和方法會被插入到代碼中。
  • 方法二、鍵入要插入代碼中的屬性或方法的頭幾個字母,Delphi在清單框中查找與之比對的屬性或方法,并加亮顯示最比對輸入字母的項,若這個項就是所要的屬性或方法,按下Enter鍵盤即可插入到代碼中。

若不想使用Code Completion清單框,按下鍵盤的ESC鍵,清單框就會消失。

Code Completion提供屬性和方法清單供使用者選擇,進而節省使用者事件,同時可以避免屬性名、方法名的拼寫錯誤及大小寫錯誤。可以標明所要的屬性或方法,按下Enter鍵,Delphi就會将它插入到代碼中。

4、Tooltip Symbol Insight(工具提示)

把滑鼠光标移到源代碼中的任意辨別符上,就會彈出一個提示框,例如,在任意标準工程中接口段,将光标定位到“TForm1 = Class(TForm)”上,會彈出如下的視窗:

Delphi Code Editor 之 幾個特性

這一行顯示了TForm類聲明,并告訴使用者TForm是在Forms.pas單元的704行聲明的。

該工具提示會告訴使用者有關程式中任一變量的資訊,當使用者忘記了一個變量的類型時,使用這個功能會特别友善。

5、Class Completion(類完成)

在interface接口段中鍵入一方法或屬性的聲明後,并按下【Ctrl + Shift + C】,Delphi就會把必須的代碼加到implementation實作段中,進而完成這個類。下面通過簡單的聯系來熟悉這個特性:

(1)啟動一個空工程。

(2)切換到Code Editor中,找到interface接口段中的窗體類聲明。

(3)在該窗體類聲明中的public段中鍵入以下代碼:

Delphi Code Editor 之 幾個特性

(4)按下【Ctrl + Shift + C】組合鍵,Delphi自動将Test和GetSomething方法的代碼添加到implementation段中了,并将光标定位到第一個方法中。如下圖:

Delphi Code Editor 之 幾個特性

Class Completion适用于屬性聲明和方法。鍵入一個屬性聲明,按下【Ctrl + Shift + C】鍵,Delphi就會自動完成該屬性的聲明。它還能為屬性添加一個write方法。現在了解這個write方法有點困難,在以後的講解中能編寫自己的元件後,就會明白的。

Class Completion特性在編寫元件時,可節省許多時間,使用一段時間後,就會覺得再也離不開它了。

6、Module Navigation(子產品導航)

它使使用者能夠從implementation段中一個方法快速移動到interface段中該方法聲明處;反過來也可以。還是做個練習來說明它把。

(1)找到上面的練習,我們修改過窗體的類聲明,添加了GetSomething和Test方法過程;

(2)點選包含Test過程的聲明的行;

(3)然後按下【Ctrl + Shift + 向下箭頭】組合鍵,Code Editor就會跳到implementation段中的Test過程代碼處;

(4)按下【Ctrl + Shift + 向上箭頭】組合鍵,Code Editor又會跳到interface段中Test過程的聲明處;

使用子產品導航,能友善的在implementation段和interface段之間快速移動。

用上箭頭或下箭頭無關緊要,使用其中任一個按鈕都可在interface段和implementation段之間來回切換。

7、Module Browsing(子產品浏覽)

子產品浏覽是另一種子產品導航工具。在Code Editor中,按住【Ctrl】鍵,把滑鼠光标置于一個辨別符名上,該辨別符就會以藍色加亮顯示并加上下劃線;點選這個辨別符,Delphi會告之該辨別符聲明在源代碼中的位置。

子產品浏覽類類似子產品導航特性。但是除此之外,子產品浏覽還有其他作用。用子產品浏覽既可點選VCL辨別符,也可點選自己的辨別符。下面舉例子說明。

1)建立一個新應用程式,在其窗體上放置一個Button元件和一個Memo元件。

2)從主菜單上選擇【Project | Options】。點選“Project Options”對話框中的“Directories/Conditionals”标簽。在“Search Path”字段中輸入以下内容:

$(DELPHI)\Source\Vcl;$(DELPHI)\Source\Rtl\Win

Delphi Code Editor 之 幾個特性

點選OK關閉“Project Options”對話框。

3)輕按兩下窗體上的Button1按鈕,為其添加OnClick事件處理程式如下:

Delphi Code Editor 之 幾個特性

TMemo的Clear方法清除Memo内容,大家是不是很想知道Clear方法的VCL源代碼是啥摸樣?請繼續往下看。

4)按住鍵盤上Ctrl鍵,并點選Clear。如下圖:

Delphi Code Editor 之 幾個特性

5)稍等片刻後,Code Editor顯示出VCL stdCtrls單元,光标停在TCustomEdit.Clear方法上(這個Clear方法定義在TCustomEdit類中,該類是TMemo的祖先類之一)。Clear方法就是下面的這個樣子:

Delphi Code Editor 之 幾個特性

是不是很有趣?隻有一行代碼。但SetWindowText來自何方呢?請繼續看下一步。

6)按住Ctrl鍵,點選SetWindowText。

Delphi Code Editor 之 幾個特性

幾秒鐘後,Windows單元被打開,光标在下面的行上,如下圖:

Delphi Code Editor 之 幾個特性

上面劃着紅線的一行告訴我們,SetWindowText是一個Windows函數,它包含在USER32動态連結庫中。

7)請看Code Editor視窗的右上角有back和next兩個浏覽按鈕。點選back按鈕,Code Editor切換到前一個浏覽點(StdCtrls中的Clear方法)。

Delphi Code Editor 之 幾個特性

8)點選next按鈕,Code Editor顯示SetWindowText在Windows單元入口。

9)點選緊靠Back按鈕的下拉箭頭,浏覽器記載表中會出現源代碼單元。點選其中一個單元可将Code Editor切換到這個單元。

子產品浏覽器是一個強有力的工具,不僅能導航使用者自己的代碼,還能導航VCL源代碼及使用者安裝的第三方元件庫的源代碼。記住:通過閱讀VCL源代碼可學到很多東西,不要害怕浏覽源代碼。

8、Using Bookmarks(使用書簽)

可在代碼中設定書簽來臨時标記在源代碼中的位置。例如,經常要臨時離開正工作着的一段代碼去檢視以前編寫的代碼或從另一個位置複制代碼;在目前代碼位置設上一個書簽,然後離開去做其他事情,隻需一次點選就能回到這個代碼段。同一時間最多可設定10個書簽。

要離開某個位置設定書簽,按【Ctrl + Shift + 書簽号】。例如,要設定0号書簽(第一個書簽),把編輯器光标移到要做标記的位置,按下【Ctrl + Shift + 0】或【Ctrl + K + 0】。設定好書簽後,Code Editor的溝槽中會顯示一個圖示來訓示書簽所在行,該圖示顯示書簽号。如下圖:

Delphi Code Editor 之 幾個特性

要回到書簽處,按【Ctrl + 書簽号】就可以了,例如【Ctrl + 1】傳回到1号書簽處。也可以在Code Editor的右鍵菜單中設定書簽和傳回書簽。要清除一個書簽,可将編輯器光标定位到書簽所在行,再次按下【Ctrl + Shift + 書簽号】就可以清除。

Note

可以為Code Editor中打開的每個檔案設定書簽。例如,可以在一個源代碼中設定1#書簽,在另一個源檔案中也設定1#書簽。這意味着書簽不能跨源檔案查找。如果在Unit1.pas中設定1#書簽,則在Unit2.pas中按【Ctrl + 1】是不能傳回到Unit1.pas中1#書簽所在位置。

書簽都是臨時性的,當關閉源檔案并重新打開時,原來設定的書簽就不存在了。還要注意,設定和删除書簽必須用主鍵盤上的數字鍵,數字小鍵盤上的數字鍵不起作用。

9、Incremental Search(增量查找)

可使用增量查找選項來快速查找短字元序列。從主菜單【Search | Incremental Search】菜單項或者按【Ctrl + E】來啟動增量查找。要了解增量查找如何工作,最好的方式還是做一個練習,請按下面的步驟操作:

1)用“Object Repository”建立一個新文本檔案;

Delphi Code Editor 之 幾個特性

2)輸入以下正文:

Learning to write Windows

Programs a bit at a time

is not so bad. Isn't it

time you go back to work?

3)移動光标到該檔案頭【Ctrl + Home】;

4)按【Ctrl + E】啟動增量查找,要查找“back”。注意此時Code Editor狀态欄顯示“Searching for:”;

Delphi Code Editor 之 幾個特性

5)從鍵盤輸入一個b。字bit中的字母b被加亮顯示,但這不是要查找的。

Delphi Code Editor 之 幾個特性

6)從鍵盤輸入一個a。這次加亮顯示的是bad中的ba,仍不是要查找的。

Delphi Code Editor 之 幾個特性

7)從鍵盤輸入一個c。字back中的bac加亮顯示,

Delphi Code Editor 之 幾個特性

此時鍵入k,Code Editor狀态欄顯示“Searching for:back”,且back被加亮顯示。這樣就找到了要查找的内容。

Delphi Code Editor 之 幾個特性

8)按鍵盤上的【Esc】鍵,停止增量搜尋。

這就是與此有關的全部内容。當要查找的正文比較短時,使用增量查找是很友善的。

在執行增量查找期間,若輸入了錯誤的字元,可用Backspace鍵将錯誤輸入到查找串中的字元删除。

10、Finding Matching Brackets and Parentheses(查找配對方括号和圓括号)

Code Editor還有一個特性,它可幫助使用者查找與目前光标所指的方括号或圓括号想配對的方括号或圓括号。要查找配對方括号,可将光标移至一方括号處,按下鍵盤上的【Alt + [】,光标就會跳動到與這個方括号想配對的方括号處。

再按下【Alt + [】又會跳回到開始位置。查找圓括号與方括号使用相同的擊鍵。有時可能迷失在圓括号和方括号的迷宮裡,但現在應該能找到走出迷宮的路了。