在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
其实也不算是起因,只算是诱发今天这篇文章的起因吧。一朋友问到一个问题,已经引用了system.IOUtils单元,为什么还是会提示错误?
大家都知道在FMX中,IO相关的都整合到System.IoUtils单元内,对应的文件路径也都在这个单元内,在跨平台的代码中,我们会经常使用到。出现这样的情况,如果不清楚是什么原因,会感觉很是“邪门”(用了朋友的话,版权不在我) 模拟重现新建一个空FMX项目,增加两个单元 system.IOUtils与 FMX.Objects的引用,随意在某个事件中写一行代码:Tpath.combine,会如下图:
我们进行一下调整,把两个单元文件的引用改变一下顺序,结果如下图:
神奇的一幕出现了,是不是不再提示错误。 追源求解现在,我们来看看system.IOUtils与 FMX.Objects两个文件为什么会出现这样的情况。
FMX.Objects文件里的TPath.
system.IOUtils里的TPath. 所以,当FMX.Objects引用在后面时,系统认可的是TPath类,这个类是没有Combine函数的,自然会提示有错误。
Tpath.Data提示错误了。回头再更换一下两个引用单元的顺序,会变为Tpath.Data可用,Tpath.combine不可用。
很多时候,我们多留意一下,会发现在Delphi的一些源码中,就使用的这种方式。 分析总结简单总结,解决方法有2种:
为什么会出现同名?
再看看另一段代码:
请注意上图里的红框与黄底的内容。这是很常用的定义方式。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论