如何制作一个看起来像 Firefox 的“下载”对话框的控件

Posted

技术标签:

【中文标题】如何制作一个看起来像 Firefox 的“下载”对话框的控件【英文标题】:How make a control that look like the "download" dialog of firefox 【发布时间】:2010-04-24 22:50:35 【问题描述】:

我有一个类似于 firefox 的应用程序,可以通过互联网上的插件进行增强。

现在,我想在 Delphi (2010) 中提供一个类似于从 firefox 下载的对话框。我没有构建图形控件的技能。

使用 Delphi 的标准控件,最好的方法是什么...使用带有自定义绘制的 TListView/TStringGrid 或...

这个想法是在左侧显示一个图标,一个带有字幕的标题,中间有 1-3 行,右侧显示日期/版本。该行必须是可选择的,仅此而已。

【问题讨论】:

【参考方案1】:

对于 UI 部分,

最简单的方法:在 bergsoft 的“幻灯片视图”中使用 TNextGrid。这是我最喜欢的 VCL 控件之一。检查此屏幕截图:

http://www.bergsoft.net/res/screenshots/next-grid/slides-style.gif

最灵活的方式:将 TVirtualStreeTree 与自定义绘图一起使用,但需要一些时间才能使用最强大的树视图控件并应用自定义绘图。

最有前途的方法:使用TMS软件的高级多边形列表(目前处于测试阶段),查看以下页面中的截图,非常好看!: http://www.tmssoftware.com/site/advpolylist.asp

【讨论】:

【参考方案2】:

使用 SoftGems 中的 VirtualStringTree。

【讨论】:

【参考方案3】:

使用 TFrame 为一次下载创建自定义控件,然后重用它。

【讨论】:

我标记它是因为它是使用原生 Delphi 控件的更简单的方法。- 但是,我喜欢 3d 派对控件的建议。不好是不可能将几个问题标记为答案。【参考方案4】:

使用 TDataSet 后代(例如 TClientDataSet、JVCL 的 TjvMemoryData 或您喜欢的任何其他数据集)来创建一个包含描述下载所需的所有字段的表。例如:

Plugin_Name - Char(255)

Plugin_Icon - Blob

Downloaded_Size - Int64

Total_Size - Int64

//等等。

(当然,上面提供的字段只是作为示例 - 实际字段由您决定)。

在此之后,将TDataSource 连接到您的表并使用 TDBCtrlGrid 来显示您想要的数据。对于上面的示例,您可以记录一个TDBLabel、TDBImage、TjvDBProgressBar(不幸的是我们没有随Delphi 提供的数据感知仪表)等所有这些都连接到适当的字段。

通过这种方式,您可以使用自定义布局模拟列表(如果您将 TDBCtrlGrid 的 Column 属性设置为 1),您可以在其中执行选择、添加、删除等操作。

HTH

【讨论】:

以上是关于如何制作一个看起来像 Firefox 的“下载”对话框的控件的主要内容,如果未能解决你的问题,请参考以下文章

像facebook或firefox这样的Android侧边栏[重复]

Firefox 和 Safari 上的下拉箭头样式错误

为什么Chrome会在Firefox中显示一行?

程序员如何制作优美的免费PDF简历 30分钟 教你(程序员)使用 "五百丁" 制作简历免费下载为PDF(需要掌握常用chrome,firefox等的调试工具)

如何制作像 envato 这样的浮动侧边栏?

win8系统一下载软件就会出现一个想要firefox如何处理的选项,怎么弄