如何制作一个看起来像 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侧边栏[重复]
程序员如何制作优美的免费PDF简历 30分钟 教你(程序员)使用 "五百丁" 制作简历免费下载为PDF(需要掌握常用chrome,firefox等的调试工具)