可以模仿Firefox的“附加组件|扩展列表”的Delphi控件?

时间:2009-02-04 20:44:46

标签: delphi user-interface firefox controls

我的目标是在我的应用中更新GUI的外观。目前,我的GUI包含许多列表框,这些列表框用于以旧式方式编辑某些对象,即,用户双击项目并显示对话框以修改相应的对象。

我认为一个好的现代方法是Firefox如何显示安装的扩展(下面的快照)。

我的问题是如何轻松地在Delphi(win32)中构建这样的GUI?是否有任何组件使用模仿这种行为,或者我只需要使用面板从stratch编写代码? (IMO是一项非常麻烦的工作,我想避免 - 选择逻辑,调整等......)

alt text

5 个答案:

答案 0 :(得分:9)

您可以使用标准组件执行类似(不完全)的操作; TDBCtrlGrid,TSpeedButton,......

alt text http://img8.imageshack.us/img8/9585/imagen29ox3.png

答案 1 :(得分:7)

如果你正在使用Delphi 2007或Delphi 2009,你可以使用TCategoryButtons(来自'Additional'组件面板页面)做类似的事情。将其放在表单上,​​然后右键单击以显示弹出菜单,然后单击“类别编辑器...”。使用生成的对话框添加类别,设置其标题,并可选择设置其包含的项目。不完全相同,但它可能会做你需要的。

您还可以使用带有TTreeView的对话框(如果您有对象类别)或TListView来模拟Delphi 2007项目 - >选项对话框。单击TreeView或ListView中的项目将显示TPageControl的正确页面以配置对象。

答案 2 :(得分:3)

对每个列表项使用TFrame并将它们全部放在TScrollBox上可能有效。另请参阅TDBCtrlGrid,它与数据集结合使用。

答案 3 :(得分:2)

可以使用现有的Delphi控件完成。

例如,在 TCustomListBox 控件中,您可以创建自己的 OnDrawItem 事件来绘制自己的列表项。您还需要创建自己的 OnMeasureItem 来更改项目高度。

在某些情况下,它非常有限,所以如果你想要更多自由,你需要从头开始。

答案 4 :(得分:2)

我大多赞同Lars,但我会为每个项目而不是面板使用一个框架。这将分离到自己的文件中,您将获得简单的设计时支持。