gpt4 book ai didi

delphi - 谷歌喜欢 Delphi 的编辑/组合控件?

转载 作者:行者123 更新时间:2023-12-03 18:48:53 25 4
gpt4 key购买 nike

每个人都可能知道我的意思,但要澄清控制需要:

  • 当用户编辑文本时触发事件。该事件将提供一个 SuggestionList: TStrings,您可以在其中填充匹配/建议。
  • 如果 SuggestionList 不为空,则应出现下拉菜单。
  • 与组合不同,控件不应尝试自动选择/自动完成或以其他方式影响编辑。

  • 那么,有没有像这样工作的 Delphi 编辑/组合控件?

    最佳答案

    使用 autocompletion feature内置到所有 Windows 编辑控件中。

    首先,填写您的TStrings随心所欲地反对。然后使用 GetOleStrings 创建 TStringsAdapter 把它包起来。 (适配器不声明 TStrings 对象的所有权,因此您必须确保在适配器仍然存在时不要销毁它。)适配器为您提供 IStrings接口(interface),您将需要它,因为自动完成功能需要 IEnumString 接口(interface)提供完成匹配。调用 _NewEnum 为了那个原因。

    接下来,调用 CoCreateInstance 创建 IAutoComplete 目的。调用其 Init 方法将其与编辑控件的窗口句柄相关联。如果您使用组合框,请发送 cbem_GetEditControl 消息以查找基础编辑窗口。

    您可以在该点停止,自动完成应该会自动工作。您可以根据需要禁用自动完成功能,也可以设置任意数量的 autocompletion options .

    你说你不想要自动完成,但在操作系统术语中,我认为你真正不想要的是 自动追加 ,其中字符串的其余部分会在用户键入时自动输入到编辑框中,但会被选中以便进一步键入会覆盖它,如果所需的值短于其中一个匹配项,则用户需要删除多余的文本。

    还有自动建议 ,其中显示建议的下拉列表。

    您可以启用其中一个或两个选项。您不需要自己过滤建议列表;自动完成对象过滤 IEnumString单独列出。

    关于delphi - 谷歌喜欢 Delphi 的编辑/组合控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20198221/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com