我有两个工程,一个被共用的单与,都在一个目录下。
其中一个工程文件中定义:
{$DEFINE AMS_QUERY}
另一个工程文件中定义:
{$DEFINE AMS_FULL}然后在被共用的单元文件中写下如下语句:
uses
{$IFNDEF AMS_QUERY}
AmsqMainfrm
{$ENDIF}
{$IFNDEF AMS_FULL}
uMainfrm
{$ENDIF}
;
其中 AmsqMainfrm 和 uMainfrm 也和两个工程文件、被共用的单元在同一目录下。为什么不管我编译哪个工程都有错误提示:
',' or ';' expected but identifier 'uMainfrm' found也就是说 {$IFNDEF AMS_QUERY} 和 {$IFNDEF AMS_FULL} 都起作用了!
怎么回事?
其中一个工程文件中定义:
{$DEFINE AMS_QUERY}
另一个工程文件中定义:
{$DEFINE AMS_FULL}然后在被共用的单元文件中写下如下语句:
uses
{$IFNDEF AMS_QUERY}
AmsqMainfrm
{$ENDIF}
{$IFNDEF AMS_FULL}
uMainfrm
{$ENDIF}
;
其中 AmsqMainfrm 和 uMainfrm 也和两个工程文件、被共用的单元在同一目录下。为什么不管我编译哪个工程都有错误提示:
',' or ';' expected but identifier 'uMainfrm' found也就是说 {$IFNDEF AMS_QUERY} 和 {$IFNDEF AMS_FULL} 都起作用了!
怎么回事?
2.Project1 先新(注意新字)加编译条件1, 再运行Project1 条件1起作用(不管以前有多少Project共享此单元)
3.Project1 先修改编译条件1,再运行Project1 条件1起作用(不管以前有多少Project共享此单元)
4.Project2 先修改编译条件2, 然后编译Project2,再运行Project1 条件2起作用
RELEASE_VERSION=True;RELEASE_VERSION=False;
{$IF RELEASE_VERSION}
DEBUG=False;
{$ELSE}
DEBUG=True;
{$IFEND}
使用没什么问题
{$IFNDEF AMS_QUERY}
AmsqMainfrm; //加上分号,如果后面还有引用单元则加上逗号
{$ENDIF}
{$IFNDEF AMS_FULL}
uMainfrm;
{$ENDIF}
{$DEFINE AMS_QUERY}------------------
"Unit1.pas"
unit Unit1;{$Include "Head.inc"}
Project Options->Directories/Conditionals->
Conditionals defines:
AMS_QUERY;...