没有废话,直接正文:

在开始之前,首先我假设您有10年、或者20年甚至是30年的Pascal开发经验,由于种种无法解释且又无法摆脱的原因而不得不使用FMX来进行苦逼的开发,所以,我觉得下面是您所必须要了解的:
一、放弃,放弃,再放弃!
    这句话我宁愿每天说100万遍,宁愿让它长在您的脑门上,刻在您的脑子里,穿在您的衣服上!所以,请放弃使用FMX的开发,放弃,放弃,再放弃!不要问为什么。。。如果,您某天发现这段话是对的,请一定要对我点赞!
二、不幸的阻塞
    好了,您没有被上面一段话吓倒,视死如归、大义凛然、义无反顾、破釜沉舟、依然决然的要使用FMX。很好,您面临的第一个问题就是:界面(UI)阻塞,简单点儿说,UI纯粹是用来显示数据的,除此之外,它不应该有任何功能,也不应该阻塞任何操作!但是,由于Windows上的开发习惯,你已经适应了MessageBox,ShowModal等等阻塞,所以,这是第一个障碍,您必须跨过去!方法:
    删除或改写所有ShowMessage,MessageBox,ShowModal等等阻塞UI的代码,如果不确定,请直接删除,因为这就是万恶之源,一切未知可怕的错误几乎都来自于这些简简单单的阻塞!它们的存在都在时时刻刻提醒着你,那里有一个定时炸弹,一个不知道什么时候就会爆炸的定时炸弹!所以一定要记住:除了让UI显示数据外,不要让它做任何无聊的事情!
三、多线程交互
    记住,所有UI操作包括释放理论上都应该在主线程中进行,如果要在数据线程中进行UI显示(操作),请一定记得线程同步!线程同步!线程同步!否则,各种AV错误会变着法的把你折磨得死去活来,欲仙欲死,痛不欲生,泪如泉涌,暴跳如雷。。。也许您还有更多更可怕的成语来描述您心中的那无数匹羊驼。。。
四、理解差异
    上面的二和三如果能让你顺利过关的话,我应该说:恭喜你,恭喜蜕皮成功!蜕皮的疼痛应该去问蛇,问螃蟹,问所有一切有壳限制成长的生物,你有和他们相同的疼痛时也许才能说您准备好更进一步了。
    回归正题,这里的差异指的是您日常开发中的Windows和移动端的差异,你需要认真理解并每天重新升级自己对这种差异的认知,否则,极有可能猫也没画成,老虎也没影。。。
    好吧,这么说吧,Android开发能让你再蜕一层皮,IOS开发依然能让你再蜕一层皮,那些说“一套代码到处编译”的忽悠小白还是没问题的,但是,您得仔细想想:您能这么容易被忽悠吗?
五、可怕的第三方
    如果说,经过四的蜕皮,您已经准备开始大展拳脚的话,我建议您还是先了解一下如何集成第三方SDK(工具)吧。除非您绝不用任何第三方的SDK,那么问题来了,如果不用第三方,您开发毛线啊???有意义吗?
经过艰苦卓绝、痛不欲生的漫长熬夜岁月后,您终于把要用到的第三方SDK给集成进来了,好吧,恭喜你,开发入门终于成功!
六、万里长征终于开始
    蜕了好几次皮,终于要开始大展宏图,那么下面这些问题(坑)一定要注意:Z-Order,WebView,各种花哨的显示效果,内存占用的疯狂,奇葩的编译结果,垃圾的垃圾回收,永远改不完的架构Bug以及让你哭得死去活来的编译Bug,还有那永远赶不上操作系统、编译工具的更新,说难听点儿,吃屎都赶不上热乎的。。。即使经过这么痛苦而漫长的蜕变,您也刚刚准备好开始万里长征,心里是不是又跑过去无数群羊驼呢?
七、要成精吗
    建国后,我们已经严禁成精了,所以,您可以看看走完上面的2~6步骤要花多少时间,无论您花过还是没有花过,您一定要有一个肯定且正确的概念:使用FMX进行开发,您不可能升天成仙,更不可能半道成精,只有一种可能,那就是,参看第一条!

最后:我很想把这段文字变成吐槽的,但是,请相信,上面这些文字中的每个字都代表一滴泪或者一滴汗,所以,请注意:这段文字绝非吐槽,请自行甄别!

给所有使用FMX(FireMonkey)进行开发的忠告!相关推荐

  1. fmx 2d3d mix 开发

    很多app都会有启动界面,大多数是广告, 其实也可以用动画 fmx 2d中要支持3d,必须使用TViewport3D,然后把3d控件放进去 如果是3d应用,则无需再放TViewport3D, 当然普通 ...

  2. 关于 Delphi跨平台开发Android调用 JNI JAR java 的说明和注意事项

    2Pascal-新时代的Pascal-关于 调用 JNI JAR java 的说明和注意事项,调用第 靠写不下了 - Powered by Discuz! 关于 调用 JNI JAR 的说明和注意事项 ...

  3. Delphi多平台开发版本选型

    以下是Delphi开发的主流版本,从年代最早开始排序: Delphi 7 :  简称D7,  Delphi的经典版本,稳定,32位Windows XP 时代的流行.             仅能开发w ...

  4. 简述WinCE开发特性及忠告

    Windows CE与平台开发 Windows CE是微软为嵌入式设备打造的操作系统,而嵌入式设备可谓多种多样,这就要求CE操作系统必须是可定制的,所以微软将Windows CE设计为模块化的操作系统 ...

  5. RAD Studio 11.2详解其务实改进(Delphi C++ Builder)-Alexandria

    RAD Studio 11.2详解其务实改进(Delphi & C++ Builder)-Alexandria 目录 RAD Studio 11.2详解其务实改进(Delphi & C ...

  6. 跨平台打造移动原生应用的10大武器

    编译工具对开发者的影响是直观的,开发者使用JavaScript等语言写出应用的代码,再将它们编译成原生代码.通过原生的API,完成跨平台的操作,最终分发到本地的应用商店中.由此可见,编译工具的选择可以 ...

  7. Succinctly 中文系列教程 20220109 更新

    Succinctly 会计教程 一.会计简明指南 二.收入和费用 三.收入确认 四.组织账目 五.会计原则 六.会计制度报告 七.固定资产 八.应收账款 九.应付账款 十.库存 十一.工资单 十二.总 ...

  8. XE7 Unit scope names

    今天编译RM报表 7.0 for XE7 ,build设计时包,提示 {$IFDEF JPEG}, JPEG{$ENDIF} 没有找到 JPEG.DCU,这个应该是XE7自带. 后来 在项目选项里,编 ...

  9. SecureBlackbox 2022细粒度控制的同时

    SecureBlackbox 2022细粒度控制的同时 SecureBlackbox包括多种功能强大的数据保护.安全存储和安全传输组件.这些组件专为在最苛刻的条件下使用而设计,在提供对所有安全选项的细 ...

  10. 零基础学JAVA]Java SE基础部分-01. Java发展及JDK配置

    1.课程名称:Java发展及JDK配置 本季介绍了JAVA的发展过程,包括JDK的发展历程,path路径的配置和classpath的配置及作用.并简单讲解了一个简单的JAVA程序,并通过此程序讲解了J ...

最新文章

  1. angular2初入眼帘之-搭个环境
  2. Tomcat配置问题解决方法
  3. 使用.NET中的XML注释(一) -- XML注释标签讲解
  4. [转]leo谈“80后”程序员为什么找不到工作?(1)
  5. 使用 el 能否定义作用域变量_Jsp之El表达和JSTL标签库
  6. mysql傻瓜教程_mysql索引的使用傻瓜教程_MySQL
  7. 51nod 1243 排船的问题(二分)
  8. mysql5.7 undo_MySQL 5.7新特性之在線收縮undo表空間
  9. 伯克利(Berkeley cs61b)git使用
  10. IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”)
  11. Tableau实战 Tableau官网各版块访问情况(四)各网址情况分析
  12. 8000字干货:那些很厉害的人是怎么构建知识体系的
  13. 短视频运营详解:抖音变现目前流行的是七种方式之一电商卖货
  14. XLSX实现导出带样式的Excel表格的坑
  15. 零基础搭建私人影音媒体平台【远程访问Jellyfin播放器】
  16. ARM CPU挂死和总线挂死的DS-5调试方法
  17. pybind11学习 | 在Python中构建编译生成pyd文件
  18. Debian 查看与修改IP,设置多ip,network与networkManager配置
  19. 权限维持之:SID History 域控权限维持
  20. 【计算机网络】-【考研复试面试】-整合

热门文章

  1. (ChibiOS )嵌入式操作系统 与 (OSAL)操作系统抽象层
  2. 稳健性估计—— M 估计
  3. html华文行楷英文,HTML,CSS,font-family:中文字体的英文名称 (宋体 微软雅黑)...
  4. 在标准宽带光纤上实现量子加密
  5. 面向视频领域的边缘计算白皮书
  6. 计算机网络职业生涯规划1000字,计算机职业生涯规划1000字
  7. GCP Marker生成的刺点文件导入Pix4D教程
  8. AllenNLP常用命令记录
  9. windows10 1909 X64位 精简优化珍藏版
  10. Matlab 轴承信号仿真+分析