求Delphi的所有{$}定义 如{$APPTYPE CONSOLE}{$R *.SRC}大家都把知道的列出来一下,谢谢... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $A 全局 实模式保护模式Windows 对齐数据 $A+(默认值)所有大于1字节的变量(不包括记录字段和数组元素)均强制从偶地址开始存放,以获得更快的访问速度。$A-不对齐数据,变量将简单地存放在下一可用地址。附注在任何情况下,每个全局变量声明部分均从偶地址开始。编译器将一直保持栈指针(SP)位于偶地址上,并在必要时分配一个不用的额外字节。 $B 局部 实模式保护模式Windows 布尔求值 $B+编译器将生成完全的布尔表达式求值代码,因此即使整个表达式的结果已经可以确定,所有执行and和or运算的布尔表达式都将被完整求值。$B-(默认值)编译器将生成短路布尔表达式求值代码,因此在整个表达式的结果可以确定时将立即停止表达式求值。 $D 全局 实模式保护模式Windows 调信息 $D+(默认值)编译器将为程序或单元的每个子程序生成相应的行号表,以便IDE可以调试程序和查找引发运行时错误的位置。$D- 编译器将不生成任何调试信息。 $E $E+(默认值)编译器将生成80x87数字协处理器仿真库代码,程序在没有80x87的机器上运行时可以仿真80x87,进行浮点运算。$E-编译器只生成更小的只在80x87存在时可用的浮点运算库,程序不能在没有80x87的机器上运行。附注在单元中使用$E开关没有任何效果,它只应用在程序的编译上。在$N-时将忽略$E开关。 $F $F+在$F+后实现的子程序将强制使用远调用。$F-(默认值)编译器将自动选择在$F-后实现的子程序的调用模式。 $G $G+编译器将使用80286附加指令来改进代码生成,程序不能在8088或8086处理器上运行。$G-(默认值)编译器只生成8086指令,程序可以在所有的8086系列的处理器上运行。 $I 局部 实模式$I+(默认值)自动生成代码,在每次调用输入输出子程序后检查I/O返回值,当I/O返回值为非零值时终止程序并显示运行时错误讯息。$I-不生成检查I/O返回值的代码,你必须使用IOResult函数来检查I/O错误。 $K $L $L+(默认值)生成局部符号信息,在调试程序时可以观察、修改局部变量的值和在调用栈窗口中察看子程序。$L-不生成局部符号信息。附注在$D-时将忽略$L指示。 $N $N+编译器生成的代码将通过使用80x87数字协处理器来执行所有的实数类型计算,并可以访问四种附加的实数类型:Single、Double、Extended和Comp。$N-(默认值)编译器生成的代码将调用运行时库程序来以软件方式执行所有的实数类型计算。附注可以使用$E+指示来仿真80x87,这样就能够在没有80x87芯片的时候访问IEEE浮点类型。 $O $O+代码生成器将为从一个覆盖子程序中传递字符串和集合常参到另一个覆盖子程序中的情况准备预防措施。$O-(默认值)不生成相应的覆盖代码。附注$O+指示一般与$F+指示共同使用,以满足覆盖管理器的远程调用需要。 $P $P+使用保留字string声明的变参将被视为开放字符串参数。开放字符串参数的实际参数可以是任何字符串类型的变量,在其子程序中,形式参数的最大长度属性将与实际参数相同。$P-(默认值)使用保留字string声明的变参将被视为正常的变参,这样可以保持与早期版本的Turbo Pascal的兼容性。附注不管$P指示如何设置,使用OpenString标识符声明的变参都将始终视为开放字符串参数。 $Q $Q+生成代码为某些整数运算检查溢出错误,例如:+、-、*、Abs、Sqr、Succ和Pred。如果这些运算的结果超出了可支持的范围,将终止程序并显示运行时错误讯息。$Q-(默认值)不检查溢出错误。附注$Q指示对Inc和Dec标准子程序没有影响,它们不会检查溢出错误。 $R $R+对所有的数组、字符串索引号表达式和所有的对标量、子界类型变量的赋值操作进行范围检查。如果范围检查失败,将结束程序并显示运行时错误讯息。$R-(默认值)不进行范围检查。 $S $S+(默认值)编译器将在每个子程序的开头生成代码检查是否有足够的栈空间用以存放局部变量和其它临时数据。当栈空间不足时,将结束程序并显示运行时错误讯息。$S-不进行栈溢出检查,在没有足够的栈空间时,对子程序的调用很可能会引起系统崩溃。 $T $T+@运算符的返回值类型将是类型指针,类型指针与指向不同类型的其它类型指针不相容。$T-(默认值)@运算符的返回值类型将是无类型指针。 $V 局部 实模式$V+(默认值)进行严格的类型检查,要求形式参数和实际参数必须为相同的字符串类型。$V-实际参数可以是任何的字符串类型,即使它的最大长度与形式参数不相同。尽管$V-仍然被支持,但应该使用开放字符串参数。 $W $X $X+(默认值)可以像子程序一样调用函数,并抛弃函数的返回值,但这不能用于内置的函数(在System单元里声明的函数)。同时,通过激活用于内置的PChar类型和基于零的字符数组的特殊语法来支持空结束字符串。$X-屏蔽扩展语法。 $Y $Y+(默认值)生成符号索引信息,供IDE的程序浏览器使用。$Y-不生成符号索引信息。附注$Y指示只在单元中使用,它只在$D和$L同时打开时有效。TPC和Turbo不支持$Y指示。 $C $D $I 编译时在$I指示的当前位置插入另一个文本文件的内容。最多可以嵌套插入文件15层。附注不能在语句部分中插入文件,整个语句部分必须位于同一个源文件中。默认的文件扩展名为.pas。 $G 单元名, 单元名... $L 文件名 指示编译器连接一个Intel可再定位对象文件(.obj文件)。附注默认的文件扩展名为.obj。 实模式$M 栈尺寸, 堆下限, 堆上限$M 栈尺寸Windows$M 栈尺寸, 堆尺寸$O $R 文件名$S 段尺寸 全局 保护模式DEFINE 名称 定义一个条件符号。 {$DEFINE Debug}{$IFNDEF Debug}Here won't be compiled.{$ELSE}{$IFOPT X+}If $X+ is specified, here will be compiled. {$ENDIF}{$ENDIF}{$UNDEF Debug} $ELSE 编译或忽略下面的代码。 $ENDIF 结束条件编译。 $IFDEF 名称 如果指定名称被定义就编译下面的代码。 $IFNDEF 名称 如果指定名称没有被定义就编译下面的代码。 $IFOPT 开关 如果指定开关为当前状态就编译下面的代码。 $UNDEF 名称 取消定义一个指定名称的已定义条件符号。 $IFOPT 開關}到底{$B}是開著或關著呢? 如果我們想要指示Compiler按照某一個編譯開關當時的狀態作我們指定的事, 應該該怎麼做呢? 這時, {$IFOPT}就派得上用場了。例如:{$R+}{$Q-} // 特別指定為Q-{$IFOPT R+} // 如果 Range Check 是開啟的話 ShowMessage('程式是在 Range Check 開啟狀態下編譯的'); // 這個 Q+ 也會在 IFOPT R+ 成立時才通知 Compiler {$Q+}{$ENDIF}{$IFOPT Q+} ShowMessage('Q 也變成開啟狀態了');{$ENDIF}全是搜的~~~~~~~~~ 怎么让{$Define AName}在整个项目中有效? 在Delphi帮助的索引页面中输入$ compiler prefix 将所有的{$Define AName}保存成一个文件filename在每个单元里{$i filename} 用Inc方法引用才行http://lysoft.7u7.net 用Inc方法引用才行http://lysoft.7u7.net 就是写一个INC文本文件用{$I xx.INC}连接http://lysoft.7u7.net 请教关于调用问题。 取字符问题。希望知道的帮帮忙!有点麻烦。。 高手请指点:如何判断send函数send的数据被目标机器接收到呢? 用Delphi新编的邮件收发软件,大家来提提意思啊! MDI子窗口的打开??? 冷门~##%#$$$$$%^^*&*****(#@#@@@$#$%&^^*&??! 在prodox数据库中,哪何用一字段的前几位进行分组或排序? !!!帮我一把!!! 如何使这样的字段值自动加1? 找不到工作目录,怎么办? 山东方言四级考试 求助!
Windows 对齐数据
$A+(默认值)
所有大于1字节的变量(不包括记录字段和数组元素)均强制从偶地址开始存放,以获得更快的访问速度。
$A-不对齐数据,变量将简单地存放在下一可用地址。
附注
在任何情况下,每个全局变量声明部分均从偶地址开始。编译器将一直保持栈指针(SP)位于偶地址上,并在必要时分配一个不用的额外字节。
$B 局部 实模式保护模式Windows 布尔求值
$B+编译器将生成完全的布尔表达式求值代码,因此即使整个表达式的结果已经可以确定,所有执行and和or运算的布尔表达式都将被完整求值。
$B-(默认值)编译器将生成短路布尔表达式求值代码,因此在整个表达式的结果可以确定时将立即停止表达式求值。
$D 全局 实模式保护模式Windows 调信息
$D+(默认值)编译器将为程序或单元的每个子程序生成相应的行号表,以便IDE可以调试程序和查找引发运行时错误的位置。
$D-
编译器将不生成任何调试信息。
$E
$E+(默认值)
编译器将生成80x87数字协处理器仿真库代码,程序在没有80x87的机器上运行时可以仿真80x87,进行浮点运算。
$E-
编译器只生成更小的只在80x87存在时可用的浮点运算库,程序不能在没有80x87的机器上运行。
附注
在单元中使用$E开关没有任何效果,它只应用在程序的编译上。在$N-时将忽略$E开关。
$F
$F+
在$F+后实现的子程序将强制使用远调用。
$F-(默认值)
编译器将自动选择在$F-后实现的子程序的调用模式。
$G
$G+
编译器将使用80286附加指令来改进代码生成,程序不能在8088或8086处理器上运行。
$G-(默认值)
编译器只生成8086指令,程序可以在所有的8086系列的处理器上运行。
$I 局部 实模式
$I+(默认值)
自动生成代码,在每次调用输入输出子程序后检查I/O返回值,当I/O返回值为非零值时终止程序并显示运行时错误讯息。
$I-
不生成检查I/O返回值的代码,你必须使用IOResult函数来检查I/O错误。
$K
$L
$L+(默认值)
生成局部符号信息,在调试程序时可以观察、修改局部变量的值和在调用栈窗口中察看子程序。
$L-
不生成局部符号信息。
附注
在$D-时将忽略$L指示。
$N
$N+
编译器生成的代码将通过使用80x87数字协处理器来执行所有的实数类型计算,并可以访问四种附加的实数类型:Single、Double、Extended和Comp。
$N-(默认值)
编译器生成的代码将调用运行时库程序来以软件方式执行所有的实数类型计算。
附注
可以使用$E+指示来仿真80x87,这样就能够在没有80x87芯片的时候访问IEEE浮点类型。
$O
$O+
代码生成器将为从一个覆盖子程序中传递字符串和集合常参到另一个覆盖子程序中的情况准备预防措施。
$O-(默认值)
不生成相应的覆盖代码。
附注
$O+指示一般与$F+指示共同使用,以满足覆盖管理器的远程调用需要。
$P
$P+
使用保留字string声明的变参将被视为开放字符串参数。开放字符串参数的实际参数可以是任何字符串类型的变量,在其子程序中,形式参数的最大长度属性将与实际参数相同。
$P-(默认值)
使用保留字string声明的变参将被视为正常的变参,这样可以保持与早期版本的Turbo Pascal的兼容性。
附注
不管$P指示如何设置,使用OpenString标识符声明的变参都将始终视为开放字符串参数。
$Q
$Q+
生成代码为某些整数运算检查溢出错误,例如:+、-、*、Abs、Sqr、Succ和Pred。如果这些运算的结果超出了可支持的范围,将终止程序并显示运行时错误讯息。
$Q-(默认值)
不检查溢出错误。
附注
$Q指示对Inc和Dec标准子程序没有影响,它们不会检查溢出错误。
$R
$R+
对所有的数组、字符串索引号表达式和所有的对标量、子界类型变量的赋值操作进行范围检查。如果范围检查失败,将结束程序并显示运行时错误讯息。
$R-(默认值)
不进行范围检查。
$S
$S+(默认值)
编译器将在每个子程序的开头生成代码检查是否有足够的栈空间用以存放局部变量和其它临时数据。当栈空间不足时,将结束程序并显示运行时错误讯息。
$S-
不进行栈溢出检查,在没有足够的栈空间时,对子程序的调用很可能会引起系统崩溃。
$T
$T+
@运算符的返回值类型将是类型指针,类型指针与指向不同类型的其它类型指针不相容。
$T-(默认值)
@运算符的返回值类型将是无类型指针。
$V 局部 实模式
$V+(默认值)
进行严格的类型检查,要求形式参数和实际参数必须为相同的字符串类型。
$V-
实际参数可以是任何的字符串类型,即使它的最大长度与形式参数不相同。尽管$V-仍然被支持,但应该使用开放字符串参数。
$W
$X
$X+(默认值)
可以像子程序一样调用函数,并抛弃函数的返回值,但这不能用于内置的函数(在System单元里声明的函数)。同时,通过激活用于内置的PChar类型和基于零的字符数组的特殊语法来支持空结束字符串。
$X-
屏蔽扩展语法。
$Y
$Y+(默认值)
生成符号索引信息,供IDE的程序浏览器使用。
$Y-
不生成符号索引信息。
附注
$Y指示只在单元中使用,它只在$D和$L同时打开时有效。TPC和Turbo不支持$Y指示。 $C
$D
$I 编译时在$I指示的当前位置插入另一个文本文件的内容。最多可以嵌套插入文件15层。
附注
不能在语句部分中插入文件,整个语句部分必须位于同一个源文件中。默认的文件扩展名为.pas。
$G 单元名, 单元名...
$L 文件名 指示编译器连接一个Intel可再定位对象文件(.obj文件)。
附注
默认的文件扩展名为.obj。
实模式
$M 栈尺寸, 堆下限, 堆上限
$M 栈尺寸
Windows
$M 栈尺寸, 堆尺寸
$O
$R 文件名
$S 段尺寸 全局 保护模式
DEFINE 名称 定义一个条件符号。 {$DEFINE Debug}
{$IFNDEF Debug}
Here won't be compiled.
{$ELSE}
{$IFOPT X+}
If $X+ is specified,
here will be compiled.
{$ENDIF}
{$ENDIF}
{$UNDEF Debug}
$ELSE 编译或忽略下面的代码。
$ENDIF 结束条件编译。
$IFDEF 名称 如果指定名称被定义就编译下面的代码。
$IFNDEF 名称 如果指定名称没有被定义就编译下面的代码。
$IFOPT 开关 如果指定开关为当前状态就编译下面的代码。
$UNDEF 名称 取消定义一个指定名称的已定义条件符号。
$IFOPT 開關}
到底{$B}是開著或關著呢? 如果我們想要指示Compiler按照某一個編譯開關當時的狀態作我們指定的事, 應該該怎麼做呢? 這時, {$IFOPT}就派得上用場了。例如:
{$R+}
{$Q-} // 特別指定為Q-
{$IFOPT R+} // 如果 Range Check 是開啟的話
ShowMessage('程式是在 Range Check 開啟狀態下編譯的');
// 這個 Q+ 也會在 IFOPT R+ 成立時才通知 Compiler
{$Q+}
{$ENDIF}
{$IFOPT Q+}
ShowMessage('Q 也變成開啟狀態了');
{$ENDIF}全是搜的~~~~~~~~~
{$Define AName}
在整个项目中有效?
在每个单元里{$i filename}
用{$I xx.INC}连接http://lysoft.7u7.net