Delphi XE2 FireMonkey支持Indy用于跨平台应用程序吗?

8

看着新的Delphi XE2和Firemonkey。考虑到它可以编译Windows、Mac OSX和iOS,VCL组件在FireMonkey应用程序中是无用的。

我的问题是:是否有/将会有一个Indy Firemonkey版本?因为我严重需要IdHTTP.Post();。如果没有,有没有一种方法在FireMonkey中实现这个功能?

我已经谷歌了相当长的一段时间,什么也没找到。:S

4个回答

11

VCL 是指 Visual Component Library,其中并没有关于“可在运行时看到的”(也就是“视觉上的”)的内容,所以“FireMonkey 应用程序中的 VCL 组件无用”的说法与 Indy 没有关系。

你可以在 Delphi XE2 中创建一个新的 FireMonkey HD 应用程序,将其定向到 OS X,在 IDE 中仍然可以使用 Indy 组件页面,这意味着它们与支持的 FireMonkey 跨平台目标兼容。它们也适用于 FireMonkey HD Windows 目标 (32 位和 64 位)。


2
我可以确认Indy不支持iOS。目前,iOS FireMonkey标准版中没有Internet选项。不过,至少有一个第三方选项。 - mj2008
Indy确实支持iOS。 - Remy Lebeau
现在可以这样做,但不确定过去是否可以(2011年)。但是请注意,如果您需要添加OpenSSL,则iOS中没有OpenSSL二进制文件,这意味着您必须获取这些二进制文件的副本并自行部署它们与您的iOS应用程序。 - Jerry Dodge
@JerryDodge:你不能在iOS应用程序中部署外部OpenSSL二进制文件。苹果不允许这样做。OpenSSL必须静态链接到应用程序本身中。可以在https://github.com/st3fan/ios-openssl和https://indy.fulgan.com/SSL/OpenSSLStaticLibs.7z上找到静态的OpenSSL`.a`文件。这在[Embarcadero's DocWiki](http://docwiki.embarcadero.com/RADStudio/XE8/en/OpenSSL)和[Marco Cantu's blog](http://blog.marcocantu.com/blog/using_ssl_delphi_ios.html)有记录。 - Remy Lebeau
@Remy 是的,我知道这个问题,我刚刚自己解决了。只是想在这里提醒一下其他人遇到这个问题。当然,“deploy with” 是我用词不当。参考:http://community.embarcadero.com/index.php/blogs/entry/openssl-and-https-support-for-ios-devices - Jerry Dodge
显示剩余6条评论

4
Indy自带IDE(从D6开始),因此如果您已经安装了XE2,就不需要购买其他东西。另外,Indy是开源的,因此您可以使用Indy公共访问SVN服务器或镜像升级Indy安装。

关于FireMonkey,Indy可以在其中工作。 Indy使用给定平台上的本地套接字API(在Windows上使用WinSock,在Mac上使用Posix,在Kylix上使用libc等)。

在目前的FireMonkey下,Indy唯一已知的问题是TIdAntiFreeze组件无法在设计时可用。由于包装方式的非标准化,IDE无法正确解析它(将在Indy 11中解决)。但是,您可以在运行时以编程方式实例化它。


Remy,iOS怎么样?我知道它目前还没有“支持”,但这是永久的还是将来我们会在iOS上看到Indy? - Misha
2
由于Indy是官方的FireMonkey平台,我们很可能会在iOS上看到它的身影。这只是设置Indy的后端以支持必要的操作系统调用的问题。 - Remy Lebeau
@Jeff:更具体地说,在主线程的上下文中使用Indy。 - Remy Lebeau
@Remy - 所以我一直在制作线程,而我本可以使用TIdAntifreeze,是吗? - Jeff
1
@Jeff 任何使用 Application.ProcessMessages 的方式都是让应用程序“正常工作”的非常弱的方法。对于小型个人工具或模型,TIdAntiFreeze 可能是理想的选择,但不建议在专业构建中使用。使用线程始终是阻塞组件的理想解决方案。 - Jerry Dodge
显示剩余4条评论

0

0

iOS应用程序中未使用的组件 DocWiki页面列出了大多数Indy类,适用于Delphi XE2

以下列表是一组组件(以及所使用的单元),这些组件可能在iOS应用程序的工具箱中可用,但不支持iOS应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接