gpt4 book ai didi

delphi - Google 喜欢 Delphi 的编辑/组合控件吗?

转载 作者:行者123 更新时间:2023-12-03 14:35:27 28 4
gpt4 key购买 nike

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

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

那么,是否有一个像这样工作的 Delphi 编辑/组合控件?

最佳答案

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

首先,根据需要填充 TStrings 对象。然后使用GetOleStrings创建 TStringsAdapter来包裹它。 (适配器不会声明 TStrings 对象的所有权,因此您必须确保在适配器仍处于事件状态时不会销毁它。)适配器为您提供一个 IStrings 接口(interface),您需要该接口(interface),因为自动完成功能需要 IEnumString提供完成匹配的接口(interface)。调用_NewEnum为此。

下一步,调用CoCreateInstance创建 IAutoComplete目的。调用Init方法将其与编辑控件的窗口句柄关联起来。如果您使用的是组合框,请向其发送 cbem_GetEditControl消息查找底层编辑窗口。

您可以在此时停止,自动完成功能应该会自动运行。如果需要,您可以禁用自动完成功能,也可以设置任意数量的 autocompletion options .

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

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

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

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

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