RAD Studio 10.2.3 测试√


uCompile_ZhiLing.pas

// 编译指令
unit uCompile_ZhiLing;interfaceusesSystem.SysUtils;typeTCompile_ZhiLing = classpublicconstructor Create();destructor Destroy; override;/// <summary>/// 判断操作系统/// </summary>function GetOperatingSystem: string;/// <summary>/// 自定义条件标识符(DEFINE)/// </summary>function SelfDefineLogo: string;/// <summary>/// 取消条件标识符的定义(UNDEF)/// </summary>function UnSelfDefineLogo: string;/// <summary>/// 取消定义的简单办法/// </summary>function UnSelfDefineLogo_02: string;/// <summary>/// 什么模式 [Debug 和 Release]/// </summary>function GetModel: string;/// <summary>/// 方便指针操作的编译指令/// </summary>function ConvenientPointerOperation: string;/// <summary>/// 使用 OR 和 AND/// </summary>function UseOrAnd: string;end;implementation{ TCompile_ZhiLing }constructor TCompile_ZhiLing.Create();
beginend;destructor TCompile_ZhiLing.Destroy;
begininherited;
end;function TCompile_ZhiLing.GetOperatingSystem: string;
beginResult := '啥也不是';// 其中的 "MSWINDOWS" 和 "LINUX" 就是 Delphi 预定义的 "条件标识符"{$IFDEF MSWINDOWS}Result := 'Windows';{$ENDIF}{$IFDEF LINUX}Result := 'Linux';{$ENDIF}// $IFDEF 等同于 $IF DEFINED(...){$IFDEF VER185}Result := Result + ' | ' + ('这是 Delphi 2007');{$ENDIF}{$IFDEF VER320}Result := Result + ' | ' + ('这是 Delphi XE10.2');{$ENDIF}
end;function TCompile_ZhiLing.SelfDefineLogo: string;
begin// 下面例子中自定义了条件标识符: WanYi; 标识符和定义它的指令都不区分大小写, 但大家一般惯用大写//  {$DEFINE ...} 自定义的标识符都是局部的{$DEFINE XIAOYIN}{$IFDEF xiaoyin}Result := ('标识符 XIAOYIN 已定义_01');{$ELSE}Result := ('标识符 XIAOYIN 未定义_01');{$ENDIF}
end;function TCompile_ZhiLing.UnSelfDefineLogo: string;
begin{$DEFINE XIAOYIN}{$IFDEF xiaoyin}Result := ('标识符 XIAOYIN 已定义_02_01');{$ELSE}Result := ('标识符 XIAOYIN 未定义_02_01');{$ENDIF}{$UNDEF XiaoYin}{$IFDEF xiaoyin}Result := Result + ' | ' + ('标识符 XIAOYIN 已定义_02_02');{$ELSE}Result := Result + ' | ' + ('标识符 XIAOYIN 未定义_02_02');{$ENDIF}
end;function TCompile_ZhiLing.UnSelfDefineLogo_02: string;
begin// 在 {$...} 的 $ 前面随便加点什么, 让它变成 "注释", 譬如: {.$}{.$DEFINE XIAOYIN}{$IFDEF xiaoyin}Result := ('标识符 XIAOYIN 已定义_03_01');{$ELSE}Result := ('标识符 XIAOYIN 未定义_03_01');{$ENDIF}{.$UNDEF XiaoYin}{$IFDEF xiaoyin}Result := Result + ' | ' + ('标识符 XIAOYIN 已定义_03_02');{$ELSE}Result := Result + ' | ' + ('标识符 XIAOYIN 未定义_03_02');{$ENDIF}
end;function TCompile_ZhiLing.GetModel: string;
begin{$IFDEF DEBUG}Result := ('调试模式[Debug]');{$ENDIF}{$IFDEF RELEASE}Result := ('发布模式[Release]');{$ENDIF}
end;function TCompile_ZhiLing.ConvenientPointerOperation: string;
typeTMyRec = recordName: string[12];Age: Word;end;
varp: ^TMyRec;
begin
{$POINTERMATH ON}p := GetMemory(SizeOf(TMyRec) * 2);//写入p[0].Name := '小印01';p[0].Age := 22;p[1].Name := '小印02';p[1].Age := 23;//读取Result := (string(p[0].Name) + ', ' + IntToStr(p[0].Age));Result := Result + #13#10 + (string(p[1].Name) + ', ' + IntToStr(p[1].Age));FreeMemory(p);
{$POINTERMATH OFF}
end;function TCompile_ZhiLing.UseOrAnd: string;
begin{$DEFINE AAA}{$IF DEFINED(AAA) OR DEFINED(BBB)}Result := ('条件标识符 AAA 和 BBB 其中一个定义了');{$ENDIF}{$DEFINE BBB}{$IF DEFINED(AAA) AND DEFINED(BBB)}Result := Result + #13#10 + ('条件标识符 AAA 和 BBB 都定义了');{$ENDIF}
end;end.

一点点笔记,以便以后翻阅。

Delphi 简单的编译指令相关推荐

  1. Delphi 的编译指令(1): $DEFINE、$UNDEF、$IFDEF、$ELSE、$ENDI

    2019独角兽企业重金招聘Python工程师标准>>> 一个程序从无到有的过程是这样的: 编辑代码 -> 预处理 -> 编译(成dcu等) -> 链接(为exe等) ...

  2. Delphi编译指令了解学习

    以下内容来源于网络,整理在一块儿方便以后回顾查看. Delphi 的编译指令(1) DEFINE.DEFINE.DEFINE.UNDEF.IFDEF.IFDEF.IFDEF.ELSE.$ENDIF 一 ...

  3. DELPHI的编译指令

    DELPHI的编译指令  可以检测到这种改变,   (1)  Shift+F9 或 Project -> Build all project.                           ...

  4. Delphi 编译指令与说明

    一个程序从无到有的过程是这样的: 编辑代码 -> 预处理 -> 编译(成dcu等) -> 链接(为exe等). 一.什么是预处理? 譬如 VCL 中有很多代码是兼容 Linux 的, ...

  5. Delphi编译指令说明

    Delphi快速高小的编译器主要来自Object PASCAL的严谨,使用Delphi随时都在与编译器交流,大部分情况下不需要干涉编译器的运行,但是有时也需要对编译器进行必要的设置. ******** ...

  6. Delphi常见各类编译错误信息-中英对照

    整理自网上的文章,也忘了出处,无意冒犯,如有侵权,请提前通知,本博客将及时处理. 一. 编译错误信息 ';' not allowed before 'ELSE' ElSE前不允许有";&qu ...

  7. FPGA之道(36)Verilog中的编译指令

    文章目录 前言 Verilog中的编译指令 define指令 timescale指令 inlcude指令 前言 本文摘自<FPGA之道>,一起来了解下Verilog中的编译指令. Veri ...

  8. C#中的预编译指令介绍

    原文:C#中的预编译指令介绍 1.#define和#undef 用法: #define DEBUG #undef DEBUG #define告诉编译器,我定义了一个DEBUG的一个符号,他类似一个变量 ...

  9. verilog编译指令

    编译指令 以`(反引号)开始的某些标识符是编译器指令.在Verilog 语言编译时,特定的编译器指令在整个编译过程中有效(编译过程可跨越多个文件),直到遇到其它的不同编译程序指令.完整的标准编译器指令 ...

最新文章

  1. js之argument小解
  2. CISS.SideMenu的bug
  3. vue打包后css路径_Vue打包后访问静态资源路径问题
  4. 组会PPT202006220717《双研究步骤的螺旋波等离子体放电结果分析》
  5. Linux部署动态网页,Nginx发布支持动态配置的开源Web服务器
  6. windows快捷键十八式(win10)
  7. 面对大规模系统工程,看Facebook如何处理故障排查(一)
  8. POJ 1804 Brainman (归并排序 -- 求逆序对数)
  9. ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
  10. 跨域异常与nginx的underscores_in_headers on
  11. Oracle相同的一个SQL执行计划截然不同的解决方法
  12. Vagrant 与 VirtualBox 的保姆级安装教程
  13. 使用Nmap扫描目标主机
  14. Web前端布局总体架构
  15. 基于惩罚函数的模拟退火算法求解有约束问题
  16. SAS Marketing Automation 6.3 User’s Guide 学习笔记
  17. 分支界限法 任务分配问题
  18. 皇后谜题Python
  19. imageview控件加载图片
  20. 安装Hexo博客并部署到GitHub或云服务器(细节教程,越过各种坑)

热门文章

  1. ubuntu解压命令全览(rar)
  2. shell 脚本中获取执行系统命令的输出结果
  3. Jsp通过request.setAttribute向前台传递变量
  4. 一入爬虫深似海,从此游戏是路人!总结我的python爬虫学习笔记
  5. Unity (二) Animator:Events - 动画事件案例(呐喊出现字幕)
  6. 人脸识别--活体检测(眨眼检测)
  7. 并发经验八年架构师:缓存在高并发场景下该如何问题
  8. ACdream - 1082 - 闪电战
  9. 【计算机网络】数据链路层-湖南科技大学《计算机网络微课堂》笔记3.1
  10. 微信不是万能的,流量也不是O2O的核心