【问题标题】:ComboBox with checkbox items带有复选框项目的组合框
【发布时间】:2013-11-07 10:04:03
【问题描述】:

请指教,我对 Delphi 还是很陌生。我想要一个带有复选框项目的 ComboBox,我可以使用或做什么?我正在使用 Delphi 2009。

【问题讨论】:

  • wiki.delphi-jedi.org/wiki/JVCL_Help:TJvCheckedComboBox 展开时显示复选框列表的组合框。可以在那里选择几个选项,选定的行在组合框中显示为逗号分隔的文本。通过属性“ItemEnabled[i]”和“Checked[i]”访问
  • 组合框没有复选框项目。如果您解释一下您的用途,也许我们可以建议一个更自然/直观的设计。
  • 谢谢,TJvCheckedComboBox 正是我所需要的。
  • @MarcusAdams 当您将 Windows Edit 控件与 ListBox 控件结合使用时,您将获得标准的 DropDown 控件。我们希望将 Windows Edit 控件与 Checked ListBox 控件结合起来。例如,打开 Windows 资源管理器并单击任何标题列右侧的下拉箭头。布兰戈!下拉+可检查项目。

标签: delphi delphi-2009


【解决方案1】:

我们在不同的项目中使用了以下组件:

免费软件:

商业:

  • TcxCheckComboBox 来自 DevExpress

【讨论】:

    【解决方案2】:
    1. 您可以编写自己的组件

    2. 您可以在 OwnerDraw 模式下使用股票 TComboBox 模拟复选框,并通过您的自定义例程绘制项目标题和复选框

    3. 您可以使用股票 TComboBox 模拟复选框,并使用复选框的 UNICODE 符号:http://en.wikipedia.org/wiki/Checkbox#Unicode

    4. 您可以避免使用 TCombobox,而是将 TCheckList 放在某种带有标题的可折叠面板上。这些组件一起提供的用户体验可能非常接近于选中的组合框

    5. 您可以使用许多现成的组件和库中的任何一个。例如

    展开时显示复选框列表的组合框。可以在那里选择几个选项,选定的行在组合框中显示为逗号分隔的文本。通过属性“ItemEnabled[i]”和“Checked[i]”访问

    PS。我使用了 D2009,这是一个最终有缺陷的 Delphi 版本,包括 IDE 和编译器以及 RTL。我严重建议您升级或降级。

    PPS。您的问题与 StackOverflow 上的“列出库”问题非常接近:https://stackoverflow.com/help/dont-ask

    【讨论】:

    • 广告 2. 和 3.,我认为实施起来并不容易。考虑如何控制此类所有者绘制的复选框。不要忘记,如果单击下拉列表,则光标下的项目被选中并隐藏下拉列表。这对于检查列表框来说会很不舒服。 Ad Delphi 2009,除了泛型的严重问题,我不能说任何错误。没有什么比 Delphi 2005 更糟糕的了 :-)
    • @TLama 问题不是“建议我使用简易库”,而是“我能做什么”(如果您不同意 - 将问题标记为离题)。我也认为你错了。 #3 是最容易做到的(最平坦的学习曲线 - 根本不需要学习) // D2009 调试多线程应用程序也有很多麻烦。我没有使用D2005,但我看到了D2006。这也是一个糟糕的选择。但他们说 D2007 是一个不错的版本。
    • 那么告诉我你如何检查例如如果您只是绘制图标,则此类组合复选框中的 3 个项目。你会弹出下拉列表三遍吗?嗯,我会说,对用户很不友好。而且,你很幸运你没有遇到 D2005 :-)
    • @TLama 嘿,您在上面说过“易于实施”!不要切换到“易用性”和“GUI 指南”——我们在问题和您的开始评论中都没有它们。 // 好吧,实际上我在 XE2 之前避免了所有这些新版本的认真工作。在此之前,我被 D5 版本卡住了:-D。与 D2009 的短暂恋情只证明了我是对的 :-)
    • @TLama 如果您想查看已选中的下拉列表,请打开 Windows 资源管理器。每个列表视图标题列的右侧是一个选中的下拉列表。这是用户直观期望的行为。
    猜你喜欢
    • 2013-06-15
    • 2014-12-25
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 2012-01-27
    • 1970-01-01
    相关资源
    最近更新 更多