【问题标题】:Does Delphi XE2 FireMonkey support Indy for cross-platform apps?Delphi XE2 FireMonkey 是否支持 Indy 跨平台应用程序?
【发布时间】:2011-11-13 23:47:35
【问题描述】:

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

我的问题是:是否/将会有 Indy Firemonkey 版?因为我非常需要IdHTTP.Post();。如果没有,有没有办法在 FireMonkey 中做到这一点?

我已经在谷歌上搜索了很长时间,但没有找到任何东西。 :S

【问题讨论】:

    标签: delphi http indy delphi-xe2 firemonkey


    【解决方案1】:

    VCL 表示Visual Component LibraryIndy 没有什么是“可视的”(意思是“在运行时看到”),这意味着“VCL 组件在 FireMonkey 应用程序中无用”与 Indy 无关。

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

    【讨论】:

    • 我的错,我只是认为 Indy 是一个 VCL 组件。但是,Indy 不是在某些时候使用 Windows 套接字吗?它们是否也可以在 Mac OSX 和 iOS 的 Firemonkey 中使用?
    • 正如我所提到的,它们可用于支持的操作系统(我特别提到了OS X)。我不了解 iOS,但我怀疑是这样,因为 AFAIK Indy 支持 FreePascal。就“VCL”而言,它通常用于非可视组件和可视组件; FireMonkey 和 VCL 之间的不兼容主要(不严格)与可视组件相关,因为它们依赖于底层 API。 Indy 并不总是使用 Windows Sockets。有一个用于 Kylix 的 Indy 版本,它在 Linux 上运行,因此也没有可用的 WinSock。
    • 太棒了,这意味着我可以开始寻找 Delphi XE2 副本了! :)
    • 对,我想要一份实体版,但我不知道他们是否卖给 17 岁的孩子。 :P
    • 我可以确认 Indy 不支持 iOS。 iOS FireMonkey 目前没有标准的 Internet 选项。不过,至少有一个第三方选项。
    【解决方案2】:

    Indy 附带 IDE(从 D6 开始就有),因此如果您已经安装了 XE2,则无需额外购买。此外,Indy 是开源的,因此您可以使用来自 Indy 的公共访问 SVN 服务器或镜像的源代码升级 Indy 安装。

    关于 FireMonkey,Indy 确实在 FireMonkey 中工作。 Indy 使用给定平台上的任何本机套接字 API(Windows 上的 WinSock、Mac 上的 Posix、Kylix 上的 libc 等)。

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

    【讨论】:

    • TIdAntiFreeze?从来没有听说过,我总是为我的 Indy 东西创建一个线程:)
    • 雷米,iOS 呢?我知道它目前不受“支持”,但这是永久性的,还是我们将来会在 iOS 上看到 Indy?
    • 我们可能会在 iOS 上看到 Indy,因为它是官方 FireMonkey 平台。只需设置 Indy 的后端以支持必要的操作系统调用。
    • @Jeff : TIdAntiFreeze 允许在使用 Indy 时保持应用程序可用且不忙。
    • @Jeff 任何Application.ProcessMessages 的使用都是使应用程序“正常工作”的一种非常弱的方法。 TIdAntiFreeze 可能是小型个人工具或模型的理想选择,但不建议用于专业构建。使用线程始终是阻塞组件的理想解决方案。
    【解决方案3】:

    我使用 tcp indy http://www.freelancecode.net/community/viewtopic.php?f=35&t=246 做了一个客户端服务器示例

    【讨论】:

      【解决方案4】:

      Delphi XE2Components Not Used in iOS Apps DocWiki 页面列出了大部分 Indy 类:

      以下列表是一组组件(以及使用的 单位)可能在 iOS 的工具面板中可用 应用程序,但不支持 iOS 应用程序。

      【讨论】:

        猜你喜欢
        • 2011-11-09
        • 1970-01-01
        • 1970-01-01
        • 2012-02-07
        • 2019-03-14
        • 2011-06-08
        • 1970-01-01
        • 1970-01-01
        • 2012-03-27
        相关资源
        最近更新 更多