DelphiXE环境认知
作者:帅宏军
时间:2011年4月
说明:根据DelphiXE的自带帮助翻译而来,为作者个人看法,如有翻译不当,仅供参考。
http://blog.csdn.net/shuaihj
第一章、 Project Options
Ø Project > Options
这个页面用来设置当前项目的
Delphi
编译器选项。
Default
勾选后可将当前的配置作为新工程的默认配置。
说明
:
并不是这里所有的选项适用于所有类型的项目。例如,
DCP output directory
不会出现在
C + +
项目中。
一、 Delphi Compiler
Ø Project > Options > Delphi Compiler
1. Conditional defines
指定在条件编译指令中引用的符号,用;分隔,点击
打开符号定义对话框
.
这里定义了
DEBUG,
下面的代码将执行
_
部分语句
procedure TForm1.FormCreate(Sender: TObject);
begin
{$IFDEF DEBUG}
ShowMessage('Debug');
{$ENDIF}
end;
可通过切换
Build Configuration
来得到不同的编译变量。
2. DCP output directory
指定
.dcp
文件存放的路径,如果为空,则使用
Tools > Options > Environment Options > Delphi Options > Library
页中的
DCP output directory
指定的全局路径替代
.
3. Default Namespace
指定工程中所有单元文件使用的默认命名空间。
4. Namespace prefixes
指定命名空间的前缀,可以让你使用一个命名空间时使用一个速记的命名空间。
例如:
Embarcadero.Vcl.DB,
你可以指定
Embarcadero.Vcl
作为
namespace prefix
。这样,你可以简单的在引用时,使用
uses DB
,而不必
uses Embarcadero.Vcl.DB
。
5. Output directory
指定编译后,可执行文件的存放路径。
6. Package output directory
指定编译后,
bpl
文件的存放路径。
7. Search path
指定源文件的位置。只有在
compiler search path
或
library search path
中列举的文件,才能参与到
Build
过程中,在
Build
过程中,如果某个文件在上面两个路径中找不到,将提示一个编译错误。你必须指定完整路径,多个路径可以用分号隔开。分号前后可加空格,也可不加。使用相对路径和绝对路径都可以。
8. Unit aliases
有用的向后兼容性。为那些已经更改名称或者合并的单元指定别名。格式如下:
=
例如
: Forms=Xforms
用分号分隔多个别名。
Delphi
默认
WinTypes=Windows;WinProcs=Windows.Default.
9. Unit output directory
指定一个单独存放
.dcu
文件的路径。
二、 Compiling
Ø Project > Options > Delphi Compiler > Compiling
1. Code Generation Options
1.1. Code inlining control
设置或清除
Delphi
编译器指令
{$INLINE }
。
Default = off.
1.2. Code page
输入您的应用程序的语言代码页,如
1252
。代码页是一个十进制数,表示一个特定的字符编码表,并有各种语言的标准值。
Default = 0
1.3. Emit runtime type information
控制生成运行时类型信息
{$M}
。
Default = False
1.4. Minimum enum size
指定为枚举类型分配的最小内存。选择一个字节
{$ Z1
的
}
,双字节
{$ Z2}
,四字节
{$ Z4}
Default = Byte
1.5. Optimization
控制代码的优化。启用时(相当于
{ $ O +}
),编译器执行代码的优化,如放置在
CPU
寄存器的变量,消除常见的子表达式,并产生感应变量。禁用时(相当于
{$ O-}
),所有这些优化被禁用。除了某些调试的情况下,你永远不应该把优化关闭。由
Delphi
编译器执行的所有优化保证不会改变一个程序的意义。换句话说,编译器不执行“不安全“的需要程序员特别注意的优化。这是一个全局设置,不能只针对某些具体代码行单独设置。
Default = False
1.6. Pentium-safe FDIV
控制生成浮点代码,针对某些早期的
Pentium
处理器表现出的有缺陷的
FDIV
指令设置保护。
Windows 95, Windows NT 3.51,
和以后版本的
Windows
系统自身已经包含了纠正这个问题的代码。当启用(相当于编译器指令
{$U+}
),所有浮点除法都用一个运行时库例程执行。第一次浮点除法例程被调用时,它会检查是否处理器的
FDIV
指令工作正常,并更新相应的
TestFDIV
变量(在
System
单元声明)。对于后续的浮点除法运算,在
TestFDIV
中存储的值用于确定采取何种行动
:
-1: FDIV
指令已经过测试,发现是有缺陷的。
0: FDIV
指令尚未经过测试
1: FDIV
指令已经过测试,发现是正确的
对于没有表现出
FDIV
漏洞的处理器,启用此选项,只导致很小的性能下降;在启用状态下,对于一个有缺陷的奔腾处理器,浮点除法运算可能需要多于三倍的时间,但总能产生正确的结果。在禁用(相当于
{$ U-}
)状态下,浮点除法运算都是用内联
FDIV
指令。这会得到优化的效率和代码尺寸,但可能会在有缺陷的奔腾处理器上产生不正确的结果。只有当你可以确定不在有缺陷的奔腾处理器上运行时,才使用禁用状态。
Default = False
1.7. Record field alignment
控制记录类型和类结构中的域变量对齐。
如果选择
Off ({$A0}
或者
disable ({$A-})
,
域变量不对齐,为
packaged
模式
:
根据实际大小分配内存
.
如果选择
Byte ({$A1})
,域变量向字节对齐;如果选择
Word ({$A2})
,域变量向双字节对齐;如果选择
Double Word ({$A4})
,域变量向四字节对齐;如果选择
Quad Word ({$A8})
或
({$A+})
,
域变量向八字节对齐,这是最快的,也是默认值。
1.8. Stack frames
控制过程和函数的堆栈的生成。当启用
({$W+})
时,即使过程和函数不需要,堆栈也总是生成。当禁用时
({$W-})
,堆栈只在需要的时候生成,根据常规的局部变量的使用而决定。一些调试工具需要所有过程和函数的堆栈的生成,除此之外,你不要开启此项。
Default = False
2. Debugging Options
2.1.
Assertions
启用或禁用代码源文件中生成的断言。默认启用该选项(相当于
{$C +}
)。断言通常不用于产品的发布版本。
2.2.
Debug information
调试信息包括为连续的过程的行号表,映射目标代码地址到源文件行号。对于
Units
,调试信息和目标代码一起被记录在单元文件中。调试信息增加单元文件的大小,并占用额外的内存,但不影响可执行程序的大小和速度。当一个程序或单元启用此选项编译(
{$ D+}
),集成调试器可让您单步,并在该模块中设置断点。
这两个选项
debug information
和
Map file (Project>Linking
页
)
启用时,编译时生成完整的行信息。这个选项通常和
Local symbols
选项(
{$L}
)一起使用,
用来控制局部符号调试信息的生成。
2.3.
Local symbols
启用或禁用局部符号信息的产生。
局部符号信息由模块中的局部变量和常量的名称和类型组成,即模块的
implementation
部分中的符号和
procedures
、
functions
中的符号。对于
Units
,调试信息和目标代码一起被记录在单元文件中。局部符号信息增加单元文件的大小,并占用额外的内存,但不影响可执行程序的大小和速度。开启这个选项(
{$L+}
),集成调试器可让您检查和修改模块局部变量。
此外,调用该模块的
procedures
和
functions
可以通过在
View | Call Stack
来检查。这个选项通常和
Debug information
选项(
{$D+}
)一起使用,
用来调试行号信息表的生成。如果
Debug information
被禁用,此选项将被忽略。
2.4.
Symbol Reference info
在代码编辑器和工程管理器中,用来生成符号引用信息。对应
{$Y}
。如果参考信息和定义都检查(
{$YD}
),编译器记录符号的定义位置信息。如果参考信息被检查,定义不检查(
{$Y+}
),编译器记录符号的定义位置和使用位置信息。除非
Debug information
和
Local symbols
开启,否则此选项无效。只有
Symbol Reference info
设置为
Reference info
时,
Code completion
和
Code navigation (Ctrl-Click)
功能才有效。
2.5.
Use debug .dcus
DCUs
携带堆栈帧一起构建,包含调试信息。选中此选项时,编译器优先考虑
Directories /Conditionals
页面上的
Debug Source Path
指定的
Dcu
搜索路径,而不是
pas
路径。
2.6.
Use imported data references
使单元包含引用到的其他包中的变量。(
{$G}
)
3. Other Options
3.1. Additional options to pass to the compiler
输入额外的编译器开关,使用
-
做为开关的符号,多个开关用逗号分隔。
3.2. Generate XML Documentation
在工程路径中生成用
XML
表示的一个文件,与
- doc
的编译器开关对应。
Default = False
3.3. Look for 8.3 filenames also
传递
-P
编译器开关给
DCC32.exe
。
Default = False
3.4. Output unit dependency information
传递
-depends
编译器开关给
DCC32.exe
。
Default = False
4. Runtime Errors Options
4.1. I/O checking
控制调用
I/O
方法时,对返回结果检查。启用状态下,如果一个
I/O
方法返回非
0
值,将抛出一个
EinOutError
异常。非启用状态下,你必须通过调用
IOResult
,自己检查
I/O
错误。
Default = True
4.2. Overflow checking
控制溢出检查。启用状态(
{$Q+}
),将检查某些整数运算符
(+, -, *, Abs, Sqr, Succ, Pred, Inc, and Dec)
的溢出。每个整数运算符都有额外的代码验证其结果是否超出范围,如果溢出检查失败,则引发异常
EintOverflow
。这个开关通常和
Range checking
(
{$R+}
)开关一起使用。启用溢出检查减慢你的程序,使得它有点大。
Default = False
4.3. Range checking
控制范围检查,启用状态(
{$R+}
),所有数组和字符串表达式下标索引被检查是否在范围内。如果范围检查失败,则引发异常
ErangeError
。启用范围检查减慢你的程序,使得它有点大。
Default = False
5. Syntax Options
5.1. Assignable typed constants
控制常量类型是否能被修改。启用状态(
{$J+}
),常量类型可以被修改,在本质上是初始化的变量。禁用状态(
{$J+}
),常量类型是真正意义的常量,任何企图修改的行为,都将引发编译器抛出一个错误。可写
consts
是指一个常量作为变量在运行时可被修改。旧源代码,使用可写型常量必须在编译时启用此选项,但对于新的应用,建议您使用初始化变量和禁用此选项。
Default = False
5.2. Complete boolean evaluation
控制布尔运算符
AND
和
OR
的两种评估模式。启用时(
{$ B+}
),编译器生成完整的布尔表达式求值的代码。这意味着每个
AND
和
OR
运算符都要保证评估,即使整个表达式的结果是已知的;禁用时(
{$ B-}
),编译器生成短路布尔表达式求值,也就是说,评价代码尽快停止对整个表达式的评估,变成左到右的顺序评价。
Default = False
5.3. Extended syntax
提供向后兼容,使用
Delphi
编程时,不应该禁用此选项(
{$ X-}
)。这个选项控制
Delphi
的扩展语法:
函数的声明。启用状态(
{$ X+}
),函数调用被当作过程调用,也就是说,函数的调用结果可以被丢弃,而不是传递给另一个函数或参与操作、赋值。一般说来,一个函数执行的效果是通过其结果来体现,所以丢弃其结果没什么意义。然而,有时候一个函数的执行是为了改变一个全局变量,而不是返回一个结果。
结果变量。启用状态(
{$ X+}
),一个预先定义的变量可以在函数体内使用,用来存放函数返回的结果。
空结束的字符串。启用状态(
{$ X+}
),字符串可以被分配到从零开始的字符数组(数组
[0 .. X]
中的字符),这是与
PChar
类型兼容。
Default = True
5.4. Long strings by default
此选项(
{$ H}
)控制保留字
string
在用作类型声明使用时的意义。基本类型的字符串可以表示一个长的,动态分配的字符串(基本类型的
UnicodeString
)或短的,静态分配的字符串(基本类型
ShortString
短)。默认情况下,
Delphi
基本定义的字符串类型是长的
UnicodeString
。在组件库中的所有组件都在此状态下编译。如果你写的组件,他们也应该用一个较长的字符串,以接收来自任何代码组件库中的字符串类型的属性数据。禁用状态(
{$ H-}
),在引用短字符串版本的
Delphi
代码时非常有用,你可以在本地重写字符串类型定义的含义,以确保短字符串生成。您还可以更改短字符串类型声明为
string[255]
或
ShortString
,这是明确的,独立的启用选项。
Default = True
5.5. Open parameters
此选项只对编译庞大的字符串代码有意义,是为了对早期的
Delphi,Pascal
版本向后兼容。禁用状态(
{$ P-}
),用
string
声明的变量都是正常的变量参数;
但是在启用状态(
{$ P+}
),这些参数变量是
openstring
参数。不管这个选项的设置如何,
openstring
标识符总是可以用来声明
openstring
参数。
Default = True
5.6. Strict var-strings
此选项只对短字符串代码有意义,是为了对早期的
Delphi,Pascal
版本向后兼容。
启用状态(
{$ V+}
),执行严格的类型,要求正式和实参是相同的字符串类型;
禁用状态(
{$ V-}
),任何短字符串类型的变量可以作为一个实参,即使声明的最大长度与正式参数不同。
Default = True
5.7. Typed @ operator
此选项控制类型运算符
@
生成的指针值和指针类型的兼容性。禁用时(
{$T-}
),则
@
运算符的结果始终是一个无类型指针,它与所有其他指针类型兼容。启用时(
{$T+}
),则
@
运算符的结果始终是一个有类型指针,只与其同类型的指针兼容。
Default = False
三、 Hints and Warnings
Project > Options > Delphi Compiler > Hints and Warnings
1. Output hints
{
$H
}控制在编译时,是否输出
hints
到
Messages Window
。
Default = True
2. Output warnings
{
$W
}控制在编译时,是否输出
warnings
到
Messages Window
。
Default = True
四、 Linking
Project > Options > Delphi Compiler > Linking
1. Debug information
为每一个方法生成行号表,映射对象代码到源文本行号地址。相当于用
{$ D +} Delphi
编译器的指令和
DCC32
的
- V
开关。
Default = False
2. EXE Description
请输入您的
EXE
文件的说明。这个字段可以包含多达
255
个字符的字符串。该字符串被链接到
$ D
,并被办好在可执行文件中。这最经常被用来插入应用程序的版权信息。版权信息也可以包括在
VersionInfo
文件,作为其一部分。请注意,此选项仅适用于
DLL
和应用程序的可执行文件,但不适合
packages
。
3. Generate console application
导致链接器来给应用程序的
exe
文件设置一个标志,表明是一个控制台模式应用程序。
Default = False
4. Image base
(-K)
指定编译后的镜像的预加载地址。这个值通常是在编译
DLL
的时候才改变。
Default = 400000
5. Include remote debug symbols
(-VR)
如果你正在进行远程调试,选中此项。
Default = False
6. Map file
默认情况下,链接器生成一个映射文件,其中包含的信息,包括段信息列表,程序的起始地址,以及链接时产生的任何警告或错误信息。
Default = Off.
Off --
不产生映射文件。这是默认
Segments --
生成一个映射文件,其中包含的信息,包括段信息列表,程序的起始地址,以及链接时产生的任何警告或错误信息
Publics --
生成一个映射文件,其中包含的信息,包括段信息列表,程序的起始地址,以及链接时产生的任何警告或错误信息,和一个按字母顺序排序的公共符号列表。
Detailed --
生成一个映射文件,其中包含的信息,包括段信息列表,程序的起始地址,以及链接时产生的任何警告或错误信息,和一个按字母顺序排序的公共符号列表,以及详细的段信息地图。部分段映射包含详细的段地址,长度,段名,组和模块信息
7. Maximum stack size
指示堆栈保留的总大小(只适用于执行项目
;
对于
DLL
禁用)。内存大小的设置也可以在你源码中通过
$M
编译器指令来实现。
Default = 1048576
8. Minimum stack size
指示堆栈初始大小(只适用于执行项目
;
对于
DLL
禁用)。内存大小的设置也可以在你源码中通过
$M
编译器指令来实现。
Default = 16384
9. Place debug information in separate TDS file
存储为一个单独的和工程文件同名的
C++
样式的符号文件
.tds
文件,这个文件在编译时被生成,包含了调试信息。如果你希望调试信息直接生成在
PE
中,设置
Debug Information=True
。
当加载一个
C++
模块,调试器会检查随行的
.tds
文件的时间戳。假如这个时间戳比这个模块早多于
5
秒,调试器就会认为
.tds
文件是过时的,不能使用它。通用,
IDE
的时间日志也会报告没有发现这个模块的
Debug
信息,为了避免丢失
.tds
文件的问题,执行以下任一操作:
l
请确保您的构建进程(
IDE
和命令行)和配置文件都具有一致的“
Place debug information in separate TDS file
“选项。
l
Rebuild
模块时,删除对应的
.tds
文件
Default = False
10. Set base address for relocatable images
控制一个应用程序,
DLL
或包的默认的加载地址。参数必须是:
l
一个
32
位整数值,指定镜像的基址
l
大于等于
$00010000
;这个参数的低
16
被忽略为
0
l
64K
的倍数(即,最后
4
位数字必须是零的一个十六进制数),否则将向下调整至最接近的倍数,您将收到一个编译器消息。
相当于编译指令
{$IMAGEBASE} Default = 0
11. Set extra PE header flags
为
PE
(可移植可执行文件)的应用程序头指定附加标志
相当于编译指令
{$SETPEFLAGS xxx} Default = 0
12. Set extra PE header optional flags
在
PE
(可移植可执行文件)文件的可选头中设置附加的头字段;参考在
WINNT.h
中定义的
IMAGE_OPTIONAL_HEADER
结构。
Default = 0
13. Set OS version fields in PE header as .
为
PE
指定运行时支持的操作系统。用
.
指定大版本号,用
.
指定小版本号。例如,在
PE
可选头中指定
5.0
来表示需要运行在
Windows2000
操作系统上。参考
WINNT.h
中的
IMAGE_OPTIONAL_HEADER
。
Default = 5.0
14. Set subsystem version fields in PE header as .
为
PE
指定运行时支持的子操作系统。用
.
指定大版本号,用
.
指定小版本号。
Default = 5.0
。参考
WINNT.h
中如下值:
l
IMAGE_SUBSYSTEM_UNKNOWN = 0 –
未知子系统
l
IMAGE_SUBSYSTEM_NATIVE = 1 –
设备驱动程序或原生
WINNT
程序
l
IMAGE_SUBSYSTEM_WINDOWS_GUI = 2 --
运行在
Windows
图形用户界面(
GUI
)子系统
l
IMAGE_SUBSYSTEM_WINDOWS_CUI = 3 --
运行在
Windows
字符子系统
l
IMAGE_SUBSYSTEM_POSIX_CUI = 7 --
运行在
POSIX
字符子系统
15. Set user version fields in PE header as .
指定应用程序的版本号,用
.
指定大版本号,用
.
指定小版本号。参考
WINNT.h
中的
IMAGE_OPTIONAL_HEADER
。
Default = 0
五、 Output - C/C++
Project > Options > Delphi Compiler > Output - C/C++
1. C/C++ .bpi output directory (package import libraries)
指定的
.BPI
的文件的输出目录(在
Delphi
中使用的包导入库和
C++
项目)。
2. C/C++ .hpp output directory
指定的
.HPP
的文件的输出目录(
C++
头文件)。
3. C/C++ .obj/.lib output directory
指定
C ++ .OBJ
和
.lib
文件的输出目录
4. C/C++ Output file generation
指定文件,这些文件是由
Delphi
编译器的输出。选择是
:
l
Generate DCUs:
生成包和其相关的
.dcu
,
.dcp
文件
l
Generate C .objs:
为
C
程序生成
C
对象文件
l
Generate C++ .objs:
为
C++
程序生成
C++
对象文件
l
Generate C++ .objs, headers:
生成头文件
.hpp
和对象文件
.obj
l
Generate C++ .objs, headers, namespaces:
包含
.hpp
和
.obj
的命名空间信息
l
Generate C++ .objs, headers, namespaces, export:
包含
.hpp
和
.obj
的所有符号信息
l
Generate C++ .objs, namespaces:
包含
.obj
的
C++
命名空间信息,是
Delphi
和
C++
混合项目的默认
l
Generate C++ .objs, namespaces, export:
包含
.obj
的
C++
命名空间信息和符号信息
l Generate C++ .objs, headers, exports:
包含.hpp和.obj的所有面向对象的符号信息
l
Generate C++ .objs, exports:
包含
.obj
的
面向对象的符号信息
l
Generate all C++Builder files (including package libs) *:
为
C++
生成所有的包和
Delphi
文件,以及必要的
.hpp/.bpi/.lib
文件。这是默认值
六、 Resource Compiler
Project > Options > Resource Compiler
1. Additional options
为资源编译器
(BRCC32.EXE)
指定额外的属性
2. Code page
(-c)
为资源翻译指定代码页,如果被指定,默认的
ANSI
代码页将生效。
3. Default language
(-l)
指定默认语言,如
-l409
代表英语。更多信息请参阅
http://msdn2.microsoft.com/en-us/library/ms776324.aspx
4. Ignore INCLUDE
(-x)
忽略
INCLUDE
环境变量。
Default = False
5. Multi-byte character support
(-m)
多字节字符支持。如果设置为
True
,资源编译器将定资源文件中有多字节的字符。
Default = False
6. Resource compiler to use
指定要使用的资源编译器,可选
BRCC32.exe (
默认
)
或
RC.exe (Windows SDK
资源编译器
).
7. Resource type
资源文件类型
8. Response file
指定一个响应文件,响应文件通常以
.RSP
为扩展名,是一个
ASCII
格式的文本文件,包含了命令和文件名,支持多行和空格分割。
9. Verbose messages
(-v)
链接器发出详细信息消息。
Default = False
七、 Directories and Conditionals
Project > Options > Resource Compiler > Directories and Conditionals
1. Defines a preprocessor symbol
(-d)
定义预处理符号列表
2. Include file search path
(-I)
指定程序包含的文件的路径。
3. Output directory for .res files
指定
.Res
文件的输出路径
八、 Forms
Project > Options > Forms
1. Main form
指定你的应用程序启动时,用户最新看到哪个窗体。
2. Auto-create forms
列出了自动添加到启动代码和项目文件中的在运行时创建的窗体。当您第一次运行应用程序,这些窗体会自动创建并显示。您可以通过拖动重新拖放排列这些窗体的创建顺序。按住
Shift
键的同时可选择多个窗体名称。
3. Available forms:
列出那些你的应用程序所使用的,但不会自动创建的窗体。如果你想创建一个这些形式的一个窗体,你必须调用它的
Create
方法
4. Arrow buttons
用这些箭头按钮,可将窗体从一侧移动到另一侧
九、 Application
Project > Options > Application
通过这一页改变当前应用程序的名称和类型,如果你的应用程序没有包含资源文件(
.res
),
Application settings
是不可用的。
1. Title
为应用程序指定一个出现在图标边上的标题,当最小化时显示。限制
255
个字符长
2. Help file
为当前应用程序指定一个帮助文件。
3. Icon
为当前应用程序指定一个图标
(.ico)
,对应控制台程序,这个选项是禁用的。
Windows
将使用一个默认的图标。如果你想改变这个图标,参考
http://delphi.about.com/od/delphitips2009/qt/console-mode-delphi-application-specify-icon.htm
4. Enable runtime themes
为当前应用程序指定是否使用运行时
Windows
主题
5. Target file extension
为当前应用程序指定一个扩展名
十、 Version Info
Project > Options > Version Info
通过这一页为
Win32
程序指定版本信息,当包含了版本信息后,用户可通过在资源管理器中,鼠标右键查看应用程序的属性页来看到版本信息。
1. Include version information in project
决定是否在应用程序中包含版本信息。为了使用这个选项,必须在你的工程文件中增加
{$R *.res}
在加入资源文件
2. Module version number
设置分层嵌套版本信息,结果如
Major. Minor. Release. Build
,每一个段都必须是小于
65,535
的无符号整数。如果选中了
Auto-increment build number
选项,每一次通过
Project > Build
菜单执行时,都会自动给
Build
加一。其他编译不会影响。
3. Module attributes
表示这个版本的目的,选中此选项,目的信息将被包含在版本信息中仅供参考使用:
l
Debug build
:表示这个工程是在
Debug
模式下编译生成
l
Pre-release
:表示该版本不是商业发行产品
l
DLL
:表示此版本包含动态链接库
l
Special build
:表示该版本是标准版本的变化版本
l
Private build
:表示该版本不是用作标准分发的程序
4. Language
表示在用户系统中运行此应用程序需要哪个代码页,
Locale ID
为十六进制值,例如
$0409 = code page 1033
。你只能在下拉列表中选择一项使用。如果想使用操作系统中没有的语言,需要安装对应的语言包。
5. Key/Value list box
设置典型的产品识别属性。每个条目都可被选中和编辑,也可通过右键菜单
Add Key
来增加一项。
十一、 Packages
Project > Options > Packages
通过这一页为你的应用程序选择想要使用的已经安装在
IDE
中的设计器包和运行时包。
1. Design packages
列出了安装在
IDE
中所有可用的设计期包。选中你想用在当前应用程序中的包(勾选不会影响其他应用程序)。
2. Add
安装一个设计期包,你的应用程序同时可以使用这个包了。(全局有效,影响整个
Delphi
环境)
3. Remove
删除一个设计期包,这个包将对当前应用程序不可用。(全局有效,影响整个
Delphi
环境)
4. Edit
如果源码文件或
.dcp
文件可用,编辑这个包。(全局有效,影响整个
Delphi
环境)
5. Components
显示当前选中设计期包中包含的组件列表。
6. Runtime packages
决定应用程序被创建时,需要用到哪些运行时包,多个包用分号分割。当有包被安装和卸载时,运行时包列表将被更新。应用程序包含了设计期包,也将自动包含设计期包所需要的运行时包。
7. Build with runtime packages
动态链接指定的运行时包,而不是和应用程序编译在一个文件中,这些运行时包需要和应用程序一起发布。(只对当前工程有效)
十二、 Debugger
Project > Options > Debugger
通过这一页为你的应用程序指定命令行参数,为
DLL
工程指定宿主应用程序。这些参数也可通过
Run > Parameters
来指定。
1. Host Application
指定一个应用程序的路径,如果当前应用程序是
DLL
或
BPL
,可指定一个调用它的宿主程序。你也可以指定想要执行的任何应用程序,如果想要执行当前打开的应用程序,不需要指定。
2. Parameters
指定传递给你的应用程序的命令行参数。这些参数将被智能的自动记录下来,下次使用是下拉框中为可选项。
3. Working Directory
指定用于调试当前进程的路径,默认情况下,该路径为当前应用程序
exe
文件所在的路径。
4. Source Path
指定包含源码文件的路径,默认情况下调试器搜索编译器指定的路径。按照如下顺序搜索:
l
Source path (
当前选项
).
l
全局
Browsing path
(
Delhi
或
C++
)
:
²
针对
Delphi,
使用
Tools > Options > Environment Options > Delphi Options > Library - Win32 page
页面设置
²
针对
C++,
使用
Tools > Options > Environment Options > C++ Options > Paths and Directories page
页面设置
l
全局
Debug Source path,
通过
Tools > Options > Debugger Options > Embarcadero Debuggers
页面设置
十三、 Debugger Symbol Tables
Project > Options > Debugger Symbol Tables
通过这一页指定调试过程中使用的符号表的位置。
1. Debug symbols search path
指定调试时使用的符号表路径,当
Load all symbols
没有被选中时,该选项起作用
2. Load all symbols
设置
Module Name - Symbol Table Path
列表的状态,
控制其是否可用。如果选中这个选项,使用
Module Name - Symbol Table Path
列表中的路径,如果没有被选中,使用
Debug symbols search path
中指定的路径。
3. Module Name - Symbol Table Path list
显示当前工程中定义的每个符号表的路径和别名。使用右侧的箭头可以调整顺序。调试器搜索这个这列表,寻找并加载一个匹配模块名称的路径。
4. Load symbols for unspecified modules
指定调试过程中使用的符号表是否在
Module Name - Symbol Table Path
list
指定的列表中(无论是明示还是使用文件通配符),如果此选项被选中,
Module Name - Symbol Table Path
list
中没有指定的符号表,将可以通过
Debug symbols search path
加载,如果没有被选中,将只使用
Module Name - Symbol Table Path
list
中的符号列表。
5. New,Edit, Delete
增加,修改,删除一项符号列表
十四、 Debugger Environment Block
Project > Options > Debugger Environment Block
通过这一页指定调试过程使用哪些环境变量。些参数也可通过
Run > Parameters
来指定。
1. System variables
列出了所有系统级别的环境变量名称和值,你不能删除任何已有的系统环境变量,但是可以覆盖。
2. Add Override...
当你选中一个系统变量时有效,单击后弹出一个对话框,让你输入一个同名的用户变量来覆盖系统变量。
3. User overrides
可定义自己的用户变量,也可覆盖同名的系统变量,通过
New
,
Edit
,
Delete
来增加,修改和删除。
4. Include System Variables
传递系统变量给应用程序,如果此选项没有被选中,将只传递用户变量给应用程序。
十五、 Build Events
Project > Options > Build Events
通过这一页指定的命令
(
如
copy $() c:/Built/$())执行的结果,将在
Messages
窗口的
Output
页面被显示。如果想控制输出的级别,通过
Tools > Options > Environment Options
调整
Verbosity
属性
1. Pre-Build
为在其他
Build
之前执行的命令。
2. Pre-Link
仅对
C++
有效,为在
Link
之前执行的命令。
3. Post-Build
为在
Build
执行完成后执行的命令。
点击
Edit
后弹出下面窗口
4. Execute when
确定什么时候执行命令
:
l
Always:
总是执行
l
Target is out-of-date:
当目标应用程序过期时执行
5. Cancel build on error
如果任何一个命令返回非零错误代码,取消工程的编译过程。
6. Commands
指定要执行的命令。用换行增加新的命令。
7. Macros
列出可使用的宏命令参数。