1.4.1 主窗口
主窗口可以认为是Delphi IDE的控制核心。它具有其他Windows应用程序的主窗口所具有的一切功能。主窗口主要包括三部份:主菜单、工具栏和组件面板。
1.主菜单
与其它Windows应用程序一样,可以通过主菜单创建、打开或保存文件、调用向导、查看其它窗口、修改选项等等。主菜单的每一项也可以通过工具栏上的图标按钮来实现。
2.Delphi工具栏
工具栏上的每个按钮都实现了IDE的某项功能,诸如打开文件或者创建项目等。
3.组件面板
组件面板包含了IDE中安装的所有VCL组件和ActiveX控件。各选项页和组件在面板中的顺序和外观可以通过右击它或者从主菜单中选择Component|Install Packages来调整。
1.4.2 窗体设计器
窗体设计器刚开始的时候是一个空白的窗口。可以把窗体设计器看作是艺术家的画布,在这块画展布上可以描绘出各种各样的Windows应用程序。应用程序的用户界面正是由窗体实现的。只要从组件面板上选择一个组件并把它放到你的窗体上,就能够实现与窗体设计器的交互。可以用鼠标调整组件在窗体设计器上的位置和大小,还可以用Ojbect Inspector和代码编辑器来控制组件的外观和行为。
1.4.3 Object Inspector
利用Object Inspector,可以修改窗体或组件的属性,或者使它们能够响应不同的事件。属性(Property)是一些数据,如高度、颜色、字体等,它们决定了组件在屏幕上的外观。事件(Event)则是一种消息处理机制,它能够捕捉某种情况的发生并做出反应,像鼠标单击和窗口重画就是两种典型的事件。Object Inspector类似一个带标签的多页笔记本,包括Properties(属性)页和Events(事件)页,切换时只需在窗口上部点击所需页的标签即可。至于Object Inspector中显示哪个组件的属性和事件,取决于在窗体设计器中当前选择哪个组件。
Delphi的一项功能是可以按对象的种类或者名字字母顺序来排序Object Inspector的内容。要做到这一点,只需在Object Inspector中右击任何一处并从快捷菜单中选择Arrange中的选项即可。
1.4.4 代码编辑器
代码编辑器是输入代码来指定应用程序行为的地方,也是Delphi根据应用程序中的组件自动生成代码的地方。代码编辑器类似于一个多页的笔记本,每一页对应该着一个源代码模块或文件。当向应用程序中加入一个窗体时,Delphi会自动创建一个新的单元,并添加到代码编辑器顶部的标签中。当进行编辑的时候,快捷菜单提供了很多的选项,如关闭文件、设置书签等。
技巧 如果想看到更多的代码可以选择主菜单下的View,New Edit Window。
1.4.5 代码浏览器
代码浏览器以一种树状视图的方式显示了列在代码编辑器中的单元文件。通过代码浏览器,可以方便地在单元文件中漫游或在单元文件中加入新的元素或者把已有的文件改名。在DelphiXE中为Project Manager。
1.4.6 源代码生成器
当对窗体设计器中的可视化组件进行操作时,Delphi IDE会自动生成Object Pascal源代码。最简单的例子就是,当用File|New|VCL Form Application – Delphi菜单命令创建一个新的项目时,将看到屏幕上出现一个空白的窗体设计器,同时,代码编辑器中自动出现了一些代码,如清单1-1所列。
清单1-1 一个空白窗体的源代码
- unit uMain;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls;
- type
- TForm1 = class(TForm)
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.dfm}
- end.
应该注意到和任何窗体对应的源代码模块都驻留在单元文件中。虽然每个窗体都对应着一个单元文件,但并不是每个单元文件都对应着一个窗体。
在上述源代码清单中,有这么几行代码:
- type
- TForm1 = class(TForm)
- private
- { Private declarations }
- public
- { Public declarations }
- end;
可以看出,窗体对象是从TForm继承下来的。Delphi已经清楚地标出了可以插入公共(Public)和私有(Private)变量的地方。
下面这一行非常重要:
{$R *.dfm}
Pascal语言中的$R指令用于加载一个外部资源文件。上面这一行表示把.DFM(代表Delphi窗体)文件链接到可执行文件中。.DFM文件中包含了在窗体设计器中创建的表单(Form)的二进制代码。其中的“*”不代表通配符,而是表示与当前单元文件同名的文件。例如上面一行是在一个名为 Unit1.pas 的文件中,则 *.dfm就代表名为 Unit1.dfm 的文件。
注意DelphiXE中默认将DFM文件存为文本文件而不是二进制代码。这一选项是默认的,不过你可以通过在Tools|Options中VCL Designer中的Module creation options下的New forms as text来修改。将表单存为文本格式,虽然会因为代码长度的增加而使执行效率略有下降,但从几个方面来说,它都不失为一个好的经验:首先,在任何文本编辑器里对DFM文本做一些小的修改都很容易实现。其次,如果DFM文件被破坏,那么修复一个被破坏的文本文件远比修复一个二进制文件要容易得多。
应用程序的项目文件也值得注意。项目文件的扩展名是.DPR(代表Delphi project),它只是一个带有不同扩展名的Pascal源文件。项目文件中有程序的主要部分。和其他版本的Pascal不同,大多数的编程工作都是在单元文件中完成的,而不是在主模块中。可以选择主菜单下的Project|View Source把项目源文件调入代码编辑器。下面是一个应用程序示例的项目文件:
- program Project1;
- uses
- Forms,
- uMain in 'Unit1.pas' {Form1};
- {$R *.res}
- begin
- Application.Initialize;
- Application.MainFormOnTaskbar := True;
- Application.CreateForm(TForm1, Form1);
- Application.Run;
- end.
当向应用程序中添加表单和单元的时候,它们将出现在项目文件的uses子句中。 这里也要注意,在uses子句中的单元文件名之后,相应表单的名字将以注释的形式出现。