【问题标题】:Rich GUI application in DelphiDelphi 中丰富的 GUI 应用程序
【发布时间】:2010-11-18 15:23:45
【问题描述】:

我想在 Delphi 中创建一个具有丰富 UI 元素且没有 VCL(TForm 除外)的应用程序。每个组件(按钮、列表等)都需要支持完整的每像素 alpha,并且无需任何代码即可轻松创建。它应该是可剥皮的,并且能够产生类似于 adobe air 应用的结果。

我已尝试使用 GR32 (Graphics32),但 TImage32 的每个实例都占用太多内存。

您知道 Delphi 2009 的任何框架或组件可以让我创建一组组件来制作丰富的 UI 应用程序吗?

干杯!

编辑: 我的应用程序的当前 alpha 版本如下所示:

我希望得到类似的结果,但不为每个组件(按钮、标签、面板等)使用 TImage32

【问题讨论】:

  • 为什么不使用VCL这么严格?
  • 用于制作较少的“MS Windows”风格软件。我正在制作一个 IM 客户端,我希望它具有自定义外观(如 Trilian Astra)
  • 您可能需要重新考虑该设计决策。不一致的用户界面往往会使您的产品更难使用。请参阅joelonsoftware.com/uibook/chapters/fog0000000061.html 了解基本原理。
  • @Mason Wheeler:我们的想法是让 IM 客户端外观可定制以改善用户体验。这就是为什么,我想使用与 Windows 相同的工作机制,但外观完全不同。 @ smok1 :如果在完全不同的 GUI 样式中使用 VCL 组件会显得很奇怪。此外,VCL 组件的外观不是很容易预测,具体取决于 Windows 版本(主要是 Win2K、WinXP 和 Vista/Windows 7)
  • IM客户端,自定义皮肤?有点像Skype?嗯,Skype 是用 Delphi 编写的,我敢打赌它包含 VCL 组件。使用 DevExpress 皮肤控制器,你会发现它工作得很好。

标签: delphi user-interface


【解决方案1】:

我希望您不要期望人们会使用这样的应用程序。因为他们不会。没有最终用户想要查看自定义外观。剥皮对于那些手头有太多时间而没有足够用户界面设计经验的程序员来说是一种爱好

【讨论】:

    【解决方案2】:

    您看过 SpTBXLib 吗?我知道有几个皮肤编辑器可以为 SpTBXLib 创建自己的皮肤。您可以在此处下载预编译的演示:

    http://www.silverpointdevelopment.com/sptbxlib/downloads.htm

    【讨论】:

      【解决方案3】:

      如果您有时间,请等待 Delphi 2010,它将支持 Touch 和 Direct2D,您可以在其中创建具有高端质量的复杂 GUI 界面。

      你也可以尝试联系CrossGL的人http://www.crossgl.com/cgl_about.htm

      他们有一个强大的基于德尔福向量的框架,他们卖了一段时间(以高价出售)。但我认为他们通过销售基于他们的框架的应用程序赚了更多的钱。

      【讨论】:

      • 它似乎不是一个可用的框架。我会试着看看它!谢谢!
      【解决方案4】:

      好的,据我所知,您的唯一选择实际上是使用 VCL,但不是纯 VCL,因为它与 Delphi 一起提供,而是使用一些组件库。您需要的库必须是高度可定制的并且支持皮肤。我认为您的解决方案是Developer Express。这些组件适合您的需求:

      1. 完全可定制,对皮肤有很多支持,它们看起来与经典的 Windows GUI 截然不同。
      2. DevExpress 通常关心用户环境之间的一致性——例如,他们的 Web 控件在 IE、Firefox 和 Opera 中看起来是一样的。相同的规则将适用于 Windows 控件——它们在不同版本的 Windows 中看起来相同。至少 - 您可以控制表单在不同版本中的外观(在普通 VCL 中您无法控制)。
      3. 出色的支持和频繁的更新让您感到舒适——他们修复错误的速度非常快,并且会考虑功能请求。

      【讨论】:

      • 感谢您的回答!我已经检查过 DevExpress 组件,但不幸的是,它与大多数皮肤组件一样——它依赖于 Windows XP 主题。它很老,不支持太多功能(没有每像素 alpha、没有效果、没有过渡等......)。使用 DevExpress 就像使用增强的组件并使用 Windows Blind 之类的实用程序更改 Windows 上的主题。无法创建像 MacOS X 或 KDE 这样的 GUI。
      • @Ariel R:好的,所以继续努力,希望你能找到对你有用的东西:)
      【解决方案5】:

      查看来自 DevExpress 的ExpressSkins™ Library。甚至还有一个内置的Mc skin

      【讨论】:

        【解决方案6】:

        如何使用 Delphi 的 .NET 接口。 .NET GUI 被认为不那么窗口化,并且可以很容易地为您提供您想要的东西。

        这是an example of what a .NET GUI application 的样子。

        Delphi 确实有自己的 .NET VCL,它可以使用 .NET 控件而不是 Windows 控件。

        或者,您可以尝试the JEDI VCL for Delphi at Sourceforge。它是免费的,有 600 多个组件,其中许多组件可以为您提供一些不同的非 Windows 外观。

        【讨论】:

        • .NET 基于 GDI/GDI+ 本机小部件 afaik,不是所有者绘制的。
        • 其实lkessler 例子指向一个WPF 例子,那不是nativ 控件。如果您跳过“Delphi 2009”部分,WPF 非常适合此问题中的要求。
        【解决方案7】:

        这很奇怪。你想使用 Delphi 但你不会使用 VCL?

        您可以使用蒙皮控件吗?有很好的皮肤包。对于皮肤包,您可以see here 并下载一些演示。
        你也可以试试"Smooth Controls" from TMS

        问候。

        【讨论】:

        • Torrys 上显示的大多数皮肤包我都试过了,但没有一个支持高级绘图。例如,不可能创建像 MacOS X 这样的 UI(具有平滑边框、表单周围的阴影等......)。
        【解决方案8】:

        也许您应该自己从 onpaint 中绘制表格? (并处理所有鼠标、键盘和焦点问题)

        只需制作您自己的迷你框架。 Delphi 是面向对象的,所以它是一个很好的工具。 我敢肯定,在 GR32 的帮助下,你可以让它飞速发展。

        【讨论】:

        • 是的,我已经开始使用 GR32 进行此操作 - 但设计表单的工作量更大,也更难。
        【解决方案9】:

        alt text http://www.ksdev.com/vgscene/snapshot/screen1.jpeg

        你看过VGScene吗,它看起来更像是Adobe Flash或Microsoft WPF。

        【讨论】:

        • 嗨!我已经检查过 VGScene - 它似乎是最接近我想要的框架。但不幸的是,VGScene 似乎很新,并且没有很好的文档记录,而且它的工作方式与 VCL 完全不同。我会检查最新版本,谢谢!
        • VGScene 现已停产。
        • @Shannonen iiuc VGScene 在 XE2 中变形为 FireMonkey
        • vgscene 变形为 firemonkey,现在我需要再次恢复到 VCL。如果可以将它与一些原生 VCL(如量子网格)合并,我会考虑使用 firemonkey。但是那行不通,所以现在我漂亮的丰富 gui 需要再次回到普通的 vcl :)
        【解决方案10】:

        我建议尝试在表单上使用 TWebBrowser 组件(使用 Align=alClient),并使用 HTML/CSS 完成大多数 UI。将内容加载到 TWebBrowser 有许多技巧,例如使用“res://” URL 的加载资源,这些资源已包含在可执行文件中。

        通过将 MSHTML 单元添加到 uses 子句,您可以使用 WebBrowser1.Document 属性上的 IHTMLDocument2 和相关接口来操作 DOM,就像现在的 Web2.0 网站所做的那样。

        【讨论】:

        • 如果您喜欢这种方法并且在 Internet Explorer 实例中运行您的应用程序没有问题,请查看我开始的这个项目,它实现了 IInternetProtocol:xxm.sourceforge.net
        • 对,但它与直接在应用程序中操作每个组件不同(例如组件上的事件)。而且,它变得依赖于 IE 并且不允许任何吸引眼球的东西。
        • 使用 WebBrowser 组件可以很好地完成您想做的事情。您最终会得到两个有效的应用程序,一个 HTML+Javascript+CSS UI,然后是一个后端 Delphi 应用程序。推荐MVC风格设计!
        • 嗯,是的,也许现在我可以理解 MVC 炒作的意义所在。你能告诉我更多关于在这种情况下做“MVC 风格设计”需要什么吗?不要在这里回答,我发了一个新问题:stackoverflow.com/questions/1278725/…
        猜你喜欢
        • 2011-06-15
        • 1970-01-01
        • 1970-01-01
        • 2013-02-04
        • 2010-09-06
        • 1970-01-01
        • 2011-12-02
        • 1970-01-01
        • 2014-11-24
        相关资源
        最近更新 更多