Delphi Project 之工程管理器(Project Manager)


工程(Project)可以說是Delphi的生命。不可能創建一個沒有工程的程序。利用工程可以把全部工作組合到一起,從而創建出可以執行的應用程序。

一般來說,每個工程都需要管理。也許要增加一個新的單元到工程中,或是從工程中刪除一個單元;也許需要增加另一種類型的文件(比如二進制資源文件)到工程中。增加和刪除單元及其他的工程文件,都需要通過Project Manager來進行的。

工程組(Project Groups)

工程是一個文件集合,這些文件一起起作用即可創建獨立的可執行文件或DLL。這就是Delphi IDE涉及到的工程的定義。在現實中,有各種類型的工程,比如一項要完成的工作也可稱為工程。

大型工程可以包括一個或多個可執行文件,以及若干個動態鏈接庫(DLLs),由於有些工程由多個(不是單個)可執行程序組成,Delphi允許將若干個工程放在一起組成一個組,從而把組中全部工程當作一個單獨的整體來處理。這個整體就叫做工程組。

1、為什么要使用工程組(Why Use Project Groups?)

大家可能會問:工程組有哪些優點?工程組的優點如下:

  • 使完整的軟件工程的控制更方便。
  • 修改DLL與測試DLL的EXE可同時進行。
  • 一次可編譯、鏈接一組工程。
  • 可同時打開多個工程,並可在打開的工程間來回切換。
  • 提供了一種組織相關工程的辦法。

創建單個可執行文件的工程不需要工程組。一個單個工程不能看作一個組,對么?在單個工程情況下,工程組的概念就不合適了。

但是,設想一下:一個程序包含一個EXE文件和單個DLL,DLL和EXE是聯系在一起的。當修改DLL時,一般都希望EXE就在旁邊,可以立即測試DLL修改的效果。在這種情況下,使用工程組就會十分有意義,因為EXE和DLL總是在一起的。

可以創建一個包含該EXE和DLL的工程組。當要修改應用程序或DLL時,可打開該工程組(而不是單個工程)。打開工程組后,EXE工程和DLL工程會同時顯示出來。可用Code Editor修改DLL或EXE,並在它們之間來回切換。如下圖,就是Project Manager窗口,其中打開了這樣一個工程組。

0256

使用工程組的另一個原因是:可將相關工程組織在一起。初聽起來,這句話好像意義不大,下面來解釋。比如一個公司開了一套串行通信組件集合,其中的組件分為三大類:基本串行通信、傳真和TAPI,每一大類都包含很多樣本程序。

在這種情況下,可以為傳真類的程序創建一個工程組,為TAPI類中的程序創建一個工程組,為基本串行通信類中的程序創建一個工程組。這樣,用戶打開TAPI工程組,將全部的TAPI樣本程序都置於其中。整個工程組可以同時編譯、鏈接,因而可以節省時間並簡化打開、編譯鏈接每個工程的操作。這里,各個工程不像EXE和DLL那樣一起工作,但這些工程是相關的,因而工程組的概念是有意義的。

2、活動的工程(The Active Project)

任何工程組中總有一個活動的工程,活動工程以粗體字顯示在Project Manager中。如上面的圖中,活動的工程為TestDLL。

當從Delphi主菜單中選取Compile或Build菜單項時,活動工程就會被編譯、鏈接。

每當一個工程被設置成活動工程時,這兩個菜單項都會發生改變。例如,如果活動工程的名為Project1,則兩個菜單項的名就是【Compile Project1】和【Build Project1】;如果把一個名叫PictView的工程設置為活動工程,則這兩個菜單項名就是【Compile PictView】和【Build PictView】。

通過Delphi主菜單或Delphi工具欄來增加元素,比如新增窗體或單元,都會自動添加到當前活動工程中。

把一個工程設置為活動工程的方法有多種。

  • 其中一種方法是:在要設置成活動工程的工程節點中任意選擇一項,然后點擊位於Project Manager窗口頂部的“Active”按鈕。
  • 另一種方法是雙擊要設置成活動工程的工程節點。
  • 最后一種方法是從工程節點的快捷菜單中選擇“Active”菜單項來激活某個工程。

工程管理窗口(The Project Manager Window)

工程管理器是所有工程和工程組的中央控制器。用工程管理器可增加文件到工程中、刪除工程中的文件、查看單元或窗體、添加工程到工程組、改變工程的排列次序等等。可選擇主菜單上【View | Project Manager】菜單項或按Ctrl + Alt + F11來顯示工程管理器。

0257

Project Manager窗口含有一個樹形列表控件,它最多顯示四層,這四層是:

  • 工程組
  • 工程組內的工程
  • 工程中的窗體和其他文件
  • 窗體節點下的單個窗體文件和單元

自然地,在任何樹列表控件(tree view control)中單個節點都可以展開或收縮。Project Manager節點都帶有圖標來指示該節點是否包含工程、單個文件、窗體或窗體/單元。如下圖:

Note

在Project Manager中查看一個單元的路徑及文件名,可點擊Project Manager窗口中的單元,Project Manager狀態欄就會顯示該單元的全部路徑和文件名。如下圖:

0258

1、工程管理器快捷菜單(The Project Manager Context Menus)

工程管理器的大多數工作都是通過工程管理器快捷菜單來進行的。Project Manager有四個獨立的快捷菜單,下面分別進行介紹。

(1)工程組快捷菜單(The Project Group Context Menu)

用鼠標右鍵點擊位於Project Manager樹頂點的工程組節點,會顯示出工程組的快捷菜單。如下圖:

image

  • 【Add New Project…】——打開對象庫,選擇一個新的應用程序、DLLs、窗體、數據模塊、組件或對象庫中的其他有效對象。
  • 【Add Existing Project…】——打開一個存儲在磁盤上的工程文件,將它添加到工程組中。
  • 【Save Project Group】——保存工程組。工程組的擴展名為.bpg。
  • 【Save Project Group As…】——用一個新工程組名保存工程組。
  • 【View Project Group Source】——顯示工程組源文件。工程組源文件是一個特殊文件(a makefile),它包含工程組內所有工程的引用。
  • 【ToolBar】——打開或關閉Project Manager的工具欄。
  • 【Status Bar】——打開或關閉Project Manager的狀態欄。
  • 【Dockable】——指明Project Manager是否可泊位。

Note

Project Manager 中每個快捷菜單都含有ToolBar、Status Bar和Dockable菜單項。下面講解其他Project Manager快捷菜單時不再重復介紹。

(2)工程快捷菜單(The Project Context Menu)

用鼠標右鍵點擊Project Manager中的工程節點,就會顯示出工程快捷菜單。如下圖:

image

  • 【Add…】——打開Add to Project對話框,增加文件到工程中。從主菜單或Delphi工具欄選擇【Project | Add to Project】,也可以打開該對話框。
  • 【Remove File…】——打開Remove From Project對話框,從工程中刪除文件。從主菜單或Delphi工具欄選擇【Project | Remove From Project】同樣可以打開該對話框。
  • 【Save】——保存工程。也可從主菜單選擇【File | Save】保存工程。
  • 【Options】——為工程顯示Project Options對話框。也可從Delphi主菜單選擇【Project | Options】來顯示Project Options對話框。
  • 【Activate】——是工程變成活動工程。
  • 【Compile】——編譯工程。
  • 【Build】——建立(編譯並連接)工程。
  • 【View Source】——顯示工程源文件(DPR文件)。也可從主菜單選擇【Project | View Source】來顯示工程源文件。
  • 【Close】——關閉工程及全部文件。如果工程時一個已保存工程組的一部分,則該工程節點圖標會變灰;它仍是工程組的一部分,但在IDE中不能打開。如果工程是缺省工程組的一部分,則關閉該工程並把它從缺省工作組中移出。
  • 【Remove Project】——從工程組中刪除工程。注意,不是把工程從硬盤上刪除,只是將它移除工作組。也可點擊Project Manager工具欄中的“Remove”按鈕來將工程刪除出工作組。
  • 【Build Sooner】——往工程樹的上部移動工程。編譯鏈接工程時按自上而下的順序進行的。
  • 【Build Later】——往工程樹的下部移動工程。

Note

Project Manager快捷菜單中的內容比本節中介紹的還要多。如果是批處理文件工程或者程序包工程,則工程快捷菜單包含附加菜單項。由於差別不大,就不專門介紹這些附加菜單項。

(3)單元快捷菜單(The Unit Context Menu)

用鼠標右鍵點擊Project Manager中的單元節點時,會顯出單元快捷菜單。如下圖:

image

  • 【Open】——在Code Editor中顯示單元(對於獨立的單元),或在Form Designer中顯示窗體(如果單元有相關聯的窗體)。
  • 【Remove From Project】——把單元從工程中刪除。刪除時Project Manager不會給出提示,因而不能撤銷刪除。如果不小心錯刪了一個單元,再把它加到工程中就行了。
  • 【Save】——保存單元。也可從Delphi主菜單中選擇【File | Save】保存。
  • 【Save As…】——打開Save As…對話框,用新單元名保存該單元,也可從Delphi主菜單中選擇【File | Save As…】來完成同樣的操作。

(4)文件快捷菜單(The File Context Menu)

用鼠標右鍵點擊除工程組節點、工程節點、單元節點外的節點(通常是.pas或.dfm文件)時,會顯示文件快捷菜單。如下圖:

image

這個快捷菜單只有一個菜單項,【Open】菜單項把選擇的節點顯示在Code Editor或Form Designer中(由所選節點的類型決定是顯示在Code Editor中還是Form Designer中)。

2、Project Manager工具欄和鍵盤命令(The Project Manager Toolbar and Keyboard Commands)

除了Project Manager快捷菜單外,Project Manager有一個工具欄,使用這個工具欄可方便工程管理器的操作。Project Manager工具欄包含三個按鈕:

image

  • Add New Project按鈕。該按鈕顯示Object Repository對象庫,從而可增加新工程到工程組中。也可點擊工程組快捷菜單的【Add New Project】菜單項來增加新工程到工程組中。
  • Remove按鈕。該按鈕把所選工程、單元、文件等從工程組中刪除。
  • Active按鈕。該按鈕把所選目標激活成活動工程。

鍵盤命令包括Delete鍵和Insert鍵。當按下Delete鍵,所選節點就會被刪除。若選的是工程節點,則把該工程從工程組中刪除;若選的是單元節點,則把單元從所屬工程中刪除。Insert鍵的功能與工程快捷菜單【Add to Project】功能一樣。

Tip

Project Manager工具欄按鈕有大小兩種尺寸。拖動工具欄底部可改變工具欄按鈕的大小,往上拖顯示小按鈕;往下拖顯示大按鈕。如圖:

0259

創建並使用工程組(Creating and Using Project Groups)

對於復雜工程,使用工程組時大有益處的,但是使用工程組不是強制的,沒有必要每個工程都使用工程組。Project Manager有一個名為ProjectGroup1的缺省工程組,當不專門打開或創建工程組時,可使用這個工程組。不妨按以下步驟試試:

(1)選擇【File | Close All】菜單項關閉所有打開的工程或工程組。

(2)選擇【File | New Application】創建一個新應用程序。

(3)選擇【View | Project Manager】來顯示Project Manager。如下圖:

0260

ProjectGroup1工程組時一個臨時工程組。當從主菜單選擇【File | Save All】菜單項時,系統會提示保存工程,而不是保存保存工程組。若要保存該工程組,必須在Project Manager的工程組快捷菜單中使用【Save Project Group】或【Save Project Group As…】菜單項來保存它。

1、增加單元(Adding Units)

要增加一個已存在的單元到工程中,只需要點擊Project Manager工具欄上的Add按鈕,或從Project Manager工程快捷菜單中選擇【Add…】。

如果工程中有一個窗體的與一個單元同名,則不能把這個單元加到該工程中。

2、刪除單元(Removing Units)

使用Remove From Project選項可將文件從工程中刪除。另外,也可選擇要刪除的單元,然后按鍵盤上Delete鍵。從工程中刪除掉的文件並未從硬盤上刪除,而只是將它們移除工程編譯/鏈接過程。

Note

從工程中刪除單元時要多加小心,不要把工程中其他單元引用的單元刪除了。如果刪除了工程要用的單元,會導致編譯出錯。在刪除一個單元之前,一定要搞清楚工程是否還要使用該單元。如果不小心刪除了工程還需要的單元,可用【Add to Project】選項將它加回到工程中。

點擊工程快捷菜單中的【Remove File…】,將會顯示出“Remove From Project”對話框,該對話框允許選擇多個單元,因此可以同時刪除多個單元文件。如下圖:

0261

3、查看單元或窗體(Viewing Units or Forms)

要查看單元、窗體或其他文件,只需雙擊想要查看的窗體或單元節點。還可以從Project Manager快捷菜單中選擇【Open】菜單項,窗體或單元就會顯示在Form Designer或Code Editor中(根據所選節點的類型)。

建立工程或工程組(Building Projects or Project Groups)

要編譯、鏈接某個工程,可按下列方法之一進行:

  • 用鼠標右鍵點擊Project Manager中的工程機電,再從快捷菜單中選【Build】菜單項。
  • 從Delphi主菜單選擇【Project | Build <工程名>】。這個菜單項的名稱隨着當前活動的工程的工程名自動變化。
  • 按鍵盤上的Ctrl + F9來編譯當前活動工程。

要編譯、鏈接整個工程組,從Delphi主菜單中選擇【Project | Build All Projects】,工程組的全部工程都會被編譯、鏈接,順序是自上而下從工程組的第一個工程到最后一個工程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM