Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi控件,可以模拟;附件“扩展列表”;Firefox?_Delphi_User Interface_Firefox_Controls - Fatal编程技术网

Delphi控件,可以模拟;附件“扩展列表”;Firefox?

Delphi控件,可以模拟;附件“扩展列表”;Firefox?,delphi,user-interface,firefox,controls,Delphi,User Interface,Firefox,Controls,我的目标是更新我的应用程序中GUI的外观。目前,我的GUI包含许多列表框,这些列表框用于以老式方式编辑某些对象,即用户双击一个项目,并显示一个对话框来修改相应的对象 我认为一个很好的现代方法是Firefox如何显示安装的扩展(下面的快照) 我的问题是如何在Delphi(win32)中轻松构建这样一个GUI?您是否使用任何组件来模拟这种行为,或者我是否只需要使用面板从stratch编写代码?(我想避免一项非常繁琐的工作——选择逻辑、调整大小等。) 为每个列表项使用一个TFrame,并将它们全部对

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

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

我的问题是如何在Delphi(win32)中轻松构建这样一个GUI?您是否使用任何组件来模拟这种行为,或者我是否只需要使用面板从stratch编写代码?(我想避免一项非常繁琐的工作——选择逻辑、调整大小等。)


为每个列表项使用一个TFrame,并将它们全部对齐放置在TScrollBox的顶部,这样可能会起作用。另请参阅TDBCtrlGrid,它与数据集结合使用时可以实现类似的功能。

可以使用现有的Delphi控件来实现

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


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

如果你使用Delphi 2007或Delphi 2009,你可以使用TCategoryButtons(从“附加”组件调色板页面)做类似的事情。将其放到表单上,右键单击以显示弹出菜单,然后单击“类别编辑器…”。使用生成的对话框添加类别,设置其标题,并可以选择设置其包含的项目。不完全一样,但它可以满足你的需要


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

我基本上同意Lars的观点,但我会为每个项目使用一个框架,而不是一个面板。这将被分离到它自己的文件中,您将获得简单的设计时支持。

您可以对标准组件执行类似的操作(不完全如此);TDBCtrlGrid,TSpeedButton


谢谢你,塞萨尔。终于有时间建立一个OpenID,这样我就可以在这里回答问题了。偶尔潜伏,但只是短暂的时间。这似乎是D2007及以上版本的可行选择。虽然不幸的是我没有。谢谢。如果你把你正在使用的Delphi版本包括在内,将来可能会更好;它将帮助人们知道哪些解决方案是可以接受的。:-)谢谢拉尔斯,我也朝着内夫塔利建议的方向走了。这正是我要避免的:-)谢谢!图像似乎不再可用!很抱歉它位于一个免费服务器中,已过期。我记下下次的笔记-(