很好的问题。
我已经开发我的应用程序超过10年了,从Delphi 2开始,然后是3和4,然后停在那里等了很多年升级到Delphi 2009,因为Unicode是必须的。当64位版本发布时,我会再次升级。
所以我经历了各种操作系统:Windows 98,Windows 2000,XP,Vista,现在是7。每个操作系统都会对你的用户界面产生一些影响,但Delphi在这方面做得相当不错。在某个时间点上,你必须决定不能再支持旧的操作系统了,并且从我的支持列表中最终剔除了Windows 98转向Unicode。
总的来说,我发现核心的Delphi提供了最好的用户界面支持。一些第三方包可能看起来提供了更多功能,但它们的不一致性问题比它们的好处更严重。尽量减少使用其他包。
我一直追求的一个UI目标是参加Windows Vista Logo计划,最近是Windows 7计划。
Microsoft提供了很多信息,关于与您问题中的条件1到7相关的标准应该是什么。但是,让Delphi程序使用清单并通过Microsoft的审核最终对我来说不值得麻烦和成本,特别是因为我的不符合规定的程序在Vista和7上运行良好。
当我在64位Vista机器上开发时,保持我的程序运行并在Windows XP、Vista和7上保持UI外观相同意味着我需要使用Microsoft虚拟机。有人告诉我,我的程序也可以在Wine上运行,所以那是另一个测试机器。
现在回答你的问题:
a)Delphi 2010是否在这种情况下带来了新的东西?
是的。每个版本都会添加已添加到新操作系统的新VCL组件。例如,Windows 7的新UI已被添加。
b)我们应该选择售后市场组件套件,并依靠它们解决所有这些问题吗?c)我们应该选择售后市场换肤引擎吗?
就像我之前说的那样,我认为在Delphi本身中完成比在第三方软件包中完成要好。
d)也许更适合采用类似于HTML的GUI。我们是否可以使用HTML制作一个相对复杂的GUI应用程序,而不需要使用浏览器?(最好是基于表单)
我的应用程序类似于一个带有富文本的文字处理器。我看过一些基于HTML的编辑套件,但我不认为这是桌面应用程序的正确方向。如果你想要一个基于网络的应用程序,你最好使用.NET和Prism。
e)我们应该专注于编写这些场景的每一个部分,而不是抱怨吗?
首先升级到Delphi 2010。你会发现Delphi本身将为您处理大多数这些情况。
f)最后,我们如何测试所有这些条件?
自己做这个任务很繁重,即使使用虚拟机也是如此。你所要做的是开放测试版,并吸引尽可能多的用户在不同的环境下测试你的程序。然后,你将处理最重要的环境,以满足你的用户需求。
现在,如果你认为在不同的Windows环境中获得用户界面兼容性很困难,那么等待Embarcadero推出他们的适用于Mac的Delphi版本之后,你的当前UI问题将会变得微不足道。