2Pascal-新时代的Pascal

 找回密码
 立即注册
搜索
热搜: fastreport
查看: 1522|回复: 7
打印 上一主题 下一主题

跨平台,多设备,多平台,代码写法,预定义写法,讨论

[复制链接]

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
83967
跳转到指定楼层
楼主
发表于 2015-6-15 15:46:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
京东购书支持本站
跨平台,多设备,多平台,代码写法,预定义写法,$IFDEF $IF defined 写法 ,讨论
给 WIN 系统写代码,不区分 32 64
{$IFDEF MSWINDOWS}
  //代码
{$ENDIF}

给 苹果 安卓 等 Linux 的 POSIX 标准系统写代码。
{$IFDEF POSIX}
  //代码
{$ENDIF}



给安卓系统写代码,不区分 32 64
{$IFDEF ANDROID}
  //代码
{$ENDIF}

给苹果系统写代码,不区分 PC 和移动,也不区分 32 64
{$IFDEF MACOS}
  //代码
{$ENDIF}

给苹果 PC  MAC 系统写代码,不区分 32 64
{$IF Defined(MACOS) and Not Defined(IOS)}

给 苹果 iOS 系统写代码,不区分 32 64
{$IFDEF IOS}
  //代码
{$ENDIF}

给 WIN 系统写代码,区分 32 64
{$IFDEF WIN32}
  //代码
{$ENDIF}

{$IFDEF WIN64}
  //代码
{$ENDIF}


使用
{$IFDEF XXXX} 或者 {$IFNDEF XXXX}
一般配合如下代码。
{$ELSE}
{$ENDIF}

如果想要 ELSEIF
如下写法
{$IF defined(XXXX)}
{$ELSEIF defined(YYYY)}
{$ELSEIF defined(ZZZZ) 可以配合 OR  AND}
{$ENDIF}










(C)(P)Flying Wang
回复

使用道具 举报

2

主题

13

帖子

117

积分

注册会员

Rank: 2

积分
117
沙发
发表于 2015-6-15 16:43:20 | 只看该作者
京东数码购物支持本站
不错,很完整!

// 为了方便阅读,可以自订义一个 OSX 平台
{$IF Defined(MACOS) and Not Defined(IOS)}
  {$DEFINE MACOSONLY}
{$ENDIF}

// 使用示例
{$IFDEF MACOSONLY}
  //代码
{$ENDIF}
回复 支持 反对

使用道具 举报

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
83967
板凳
 楼主| 发表于 2015-6-15 16:51:33 | 只看该作者
京东购书支持本站
多谢 阿卍 来 捧场。
(C)(P)Flying Wang
回复 支持 反对

使用道具 举报

3

主题

14

帖子

61

积分

注册会员

Rank: 2

积分
61
地板
发表于 2015-7-9 10:36:40 | 只看该作者
京东数码购物支持本站
Delphi默认的这些define常量在什么位置?那个文件?
回复 支持 反对

使用道具 举报

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
83967
5#
 楼主| 发表于 2015-7-9 10:57:22 | 只看该作者
京东数码购物支持本站
l_wming 发表于 2015-7-9 10:36
Delphi默认的这些define常量在什么位置?那个文件?

只能在帮助中看到。代码中没有定义,只有使用。
(C)(P)Flying Wang
回复 支持 反对

使用道具 举报

6

主题

44

帖子

301

积分

中级会员

Rank: 3Rank: 3

积分
301
6#
发表于 2015-7-27 19:02:14 | 只看该作者
京东数码购物支持本站
如何区分是VCL项目还是FMX项目?
回复 支持 反对

使用道具 举报

2

主题

13

帖子

117

积分

注册会员

Rank: 2

积分
117
7#
发表于 2015-7-27 23:06:31 | 只看该作者
京东数码购物支持本站
[mw_shl_code=delphi,true]{$IF DECLARED(FireMonkeyVersion)}
  {$DEFINE HAS_FMX}
{$ELSE}
  {$DEFINE HAS_VCL}
{$IFEND}[/mw_shl_code]

参考:
http://stackoverflow.com/questio ... nits-for-fmx-or-vcl
回复 支持 反对

使用道具 举报

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
83967
8#
 楼主| 发表于 2015-7-28 13:07:11 | 只看该作者
京东数码购物支持本站
多谢楼上的代码
FlyUtils.TBitmapHelper.pas
就可以 自动判断了。
{$IF DECLARED(FireMonkeyVersion)}
//FMX。
  {$DEFINE FMX}
{$ELSE}
//VCL
{$ENDIF}

(C)(P)Flying Wang
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|新时代Pascal论坛

GMT+8, 2024-12-22 23:14 , Processed in 0.062265 second(s), 24 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表