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窗口,其中打开了这样一个工程组。
使用工程组的另一个原因是:可将相关工程组织在一起。初听起来,这句话好像意义不大,下面来解释。比如一个公司开了一套串行通信组件集合,其中的组件分为三大类:基本串行通信、传真和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来显示工程管理器。
Project Manager窗口含有一个树形列表控件,它最多显示四层,这四层是:
- 工程组
- 工程组内的工程
- 工程中的窗体和其他文件
- 窗体节点下的单个窗体文件和单元
自然地,在任何树列表控件(tree view control)中单个节点都可以展开或收缩。Project Manager节点都带有图标来指示该节点是否包含工程、单个文件、窗体或窗体/单元。如下图:
Note
在Project Manager中查看一个单元的路径及文件名,可点击Project Manager窗口中的单元,Project Manager状态栏就会显示该单元的全部路径和文件名。如下图:
1、工程管理器快捷菜单(The Project Manager Context Menus)
工程管理器的大多数工作都是通过工程管理器快捷菜单来进行的。Project Manager有四个独立的快捷菜单,下面分别进行介绍。
(1)工程组快捷菜单(The Project Group Context Menu)
用鼠标右键点击位于Project Manager树顶点的工程组节点,会显示出工程组的快捷菜单。如下图:
- 【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中的工程节点,就会显示出工程快捷菜单。如下图:
- 【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中的单元节点时,会显出单元快捷菜单。如下图:
- 【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文件)时,会显示文件快捷菜单。如下图:
这个快捷菜单只有一个菜单项,【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工具栏包含三个按钮:
- Add New Project按钮。该按钮显示Object Repository对象库,从而可增加新工程到工程组中。也可点击工程组快捷菜单的【Add New Project】菜单项来增加新工程到工程组中。
- Remove按钮。该按钮把所选工程、单元、文件等从工程组中删除。
- Active按钮。该按钮把所选目标激活成活动工程。
键盘命令包括Delete键和Insert键。当按下Delete键,所选节点就会被删除。若选的是工程节点,则把该工程从工程组中删除;若选的是单元节点,则把单元从所属工程中删除。Insert键的功能与工程快捷菜单【Add to Project】功能一样。
Tip
Project Manager工具栏按钮有大小两种尺寸。拖动工具栏底部可改变工具栏按钮的大小,往上拖显示小按钮;往下拖显示大按钮。如图:
创建并使用工程组(Creating and Using Project Groups)
对于复杂工程,使用工程组时大有益处的,但是使用工程组不是强制的,没有必要每个工程都使用工程组。Project Manager有一个名为ProjectGroup1的缺省工程组,当不专门打开或创建工程组时,可使用这个工程组。不妨按以下步骤试试:
(1)选择【File | Close All】菜单项关闭所有打开的工程或工程组。
(2)选择【File | New Application】创建一个新应用程序。
(3)选择【View | Project Manager】来显示Project Manager。如下图:
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”对话框,该对话框允许选择多个单元,因此可以同时删除多个单元文件。如下图:
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】,工程组的全部工程都会被编译、链接,顺序是自上而下从工程组的第一个工程到最后一个工程。
posted on 2012-02-04 11:20 pchmonster 阅读(7105) 评论(0) 编辑 收藏 举报