delphi - 凯利克斯做错了什么?

标签 delphi cross-platform

在所有关于 Delphi 团队致力于跨平台开发的讨论中,不断出现的一种情绪是,“我希望他们这次做得对,而不是像 Kylix 那样。”当 Kylix 出现时,我并没有真正注意到它,因为当时的 Linux 还没有现在那么成熟,而且它也不是我感兴趣的操作系统。所以现在它又开始成为一个问题了,我发现自己在想,Kylix 做错了什么,CodeGear 这次如何做得更好?

最佳答案

至于 CodeGear 这次可以在哪些方面做得更好:

  • 需要一种更抽象的方式来在对话框中布置控件,而不是 VCL 现在使用的基于像素的东西。这在已经具有高 DPI 设置或非标准字体的 Windows 上会崩溃,对于多平台程序来说情况会更糟。以 sizer classes in wxWidgets 为例,或 GTK、Java 或 QT 中的布局类/管理器 - 它们在更改字体或控件大小方面都做得更好。另一个优点是,这可以透明地处理控件中较短或较长的翻译文本。

  • 使库仅使用 Unicode。理想情况下,会有一个特殊的字符串类,在 Windows 内部使用 UCS-16,但在 Linux 和 Mac OS X 上使用 UTF-8。程序应该能够使用平台 native Unicode 编码,而不是被迫进行转换每个文件系统访问或屏幕输出。但也许他们已经在 Delphi 2009 的 Unicode 字符串更改中失败了。

  • GUI 应在所有平台上使用 native 控件,以获得正确的外观感觉。这将是 Windows 上的标准控件、Mac 上的 Cocoa 和 Linux 上的标准控件,理想情况下应该使用 GTK 或 QT,具体取决于桌面是 GNOME 还是 KDE。

  • 远程调试器需要成为一流的工具,而不是像现在这样充满错误和半隐藏的东西。不同平台的开发通常在虚拟机中进行,有时只能远程访问机器。

关于delphi - 凯利克斯做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/811605/

相关文章:

delphi - Application.OnException 在 COM Dll 中工作吗?

delphi - 哪种网络协议(protocol)用于远程应用程序的轻量级通知?

xcode - 跨平台 phonegap 项目的目录结构

c++ - 使用 C++ 创建跨平台程序

delphi - 如何对案例进行多种变体

delphi - 免费报告 : how to format If-Then

delphi - 是否可以获取组件的方法值(即名称)?

java - 如何编译 Android Studio 项目(Java)代码以兼容跨平台设备?

javascript - 有没有办法在 JavaScript 中使用 C++?

C中的跨平台单元测试