"刘昊" <xxx@tom.com>

最近买了你的二版的深度探索,关于自动完成那一节,我已应用在我的数据库程序中,但我想请教一下,就是如何根据用户的输入历史构建自动完成列表,并使其持久化,保存在注册表中还是保存在文本文件中,并控制这个列表的规模,以使其不能无限制的增长,若有时间,望能指点,不胜感激,

回答:

回过头再来看看Init方法的punkACL参数,它是一个必须的参数而且必须指向一个提供字符串的接口。注意不是我们熟悉的Delphi中提供的TStrings对象,而是一个IEnumString字符串接口。IEnumString接口负责生成一个用于自动完成的候选字符串列表。除了IEnumString接口外,punkACL参数还可以是IACList和IACList2等其他接口。

现在例子程序中的punkAcl参数对应的是TEnumStrings类,它只实现了IEnumStrings接口,要想实现你要求的功能,需要传进去一个实现了IACList接口的COM对象,可以参考TEnumStrings类的实现方式


本站原创及翻译内容保留版权,欢迎转贴,转贴时请注明转自Delphi深度探索