编译指令 这个{$DEFINE}{$ENDIF}怎么用啊,不知道前辈可否详细介绍一下?
解决方案 »
- delphi ado access 问题
- 调用MSRDP.OCX遇到难题!
- SOCKET急!!!!
- "function AddChildObject(Node: TTreeNode; const S: string; Ptr: Pointer): TTreeNode; "中第三个参数是什么意思?
- 一个控件的问题。应该很简单,本人不会用,请大哥们帮帮小弟。
- TStringList的AddObject方法的第二个参数可以"携带"什么类型的数据?
- 我在TreeView中的节点Icon显示不全,好象被拉伸了,怎么回事?(一定给分)
- 怎么在delphi中扑捉消息
- 为什么KYLIX正常安装完成以后,KDE菜单里面不出现KYLIX的项
- 问一个存储过程的问题,在一个存储过程中怎么得到指定数据表中某一行,某一字段的值!
- 调用foxmail,不是普通级调用
- 关于INPUTBOX的小问题,在线等结帖
{$IFDEF MSWINDOWS}
..
{$ENDIF}
{$IFDEF LINUIX}
..
{$ENDIF}
这样呢,如果在WINDOWS 中编译,就用上用的!
...
procedure TForm1.Button1Click(Sender: TObject);
begin
{$IFDEF YEAH}
ShowMessage('yeah');
{$ELSE}
...
{$ENDIF}
...
end;
若如此用,似乎多是不实用;其实如{$DEFINE YEAH}更多YEAH写在project->option->directories/conditionals中的conditional define中做为预编译常量,如版本控制等
//do 1st thing
{endif}{$ifndef ABC}
//do 2nd thing
{$endif}
现在只执行//do 1st thing的block,//do 2nd thing的block被忽略掉,当它不存在。
如果注释掉第一行,就执行//do 2nd thing的语句了,
编译开关一般在options->directories/conditionals->conditions定义
如楼上的
{$IFDEF MSWINDOWS}
codeA
{$ENDIF}
{$IFDEF LINUIX}
codeB
{$ENDIF}
如果在 conditions 定义了 MSWINDOWS 收BULID时,codeA将被编译,而codeB不被编译,
不过一般都在程序里定义编译开关,如{$DEFINE MSWINDOWS}
暂切把它想成IF ELSEIF 吧