Loading... 这节课我们来密切结合我们的超级列表框,实现我们的文件遍历器的即时搜索功能的接入吧! --- **查找表项** 在超级列表框自带的命令中,有一个命令格外引人注目,那就是“查找表项”,让我们来看一下它附带的**帮助文档** : 调用格式: 〈整数型〉 对象.查找表项 (文本型 标题,[整数型 起始查找位置],[逻辑型 是否精确匹配],[整数型 列索引]) - 扩展界面支持库一->超级列表框 英文名称:Find 查找具有指定标题的表项,成功返回被找到表项的位置索引,失败返回 -1 。本命令为初级对象成员命令。 参数<1>的名称为“标题”,类型为“文本型(text)”。本参数指定欲查找表项的标题文本。 参数<2>的名称为“起始查找位置”,类型为“整数型(int)”,可以被省略。本参数指定查找表项的起始位置。如果本参数被省略,默认值为 0 ,即从首项开始查找。 参数<3>的名称为“是否精确匹配”,类型为“逻辑型(bool)”,可以被省略。本参数指定匹配标题文本时是否为精确匹配,如果本参数为假,则只要表项标题首部包含指定文本即认为匹配成功。如果本参数被省略,默认值为真。 参数<4>的名称为“列索引”,类型为“整数型(int)”,可以被省略。本参数仅在报表模式下有效,用于指定查找表项中的哪一列。如为 -1,表示查找所有列。如果本参数被省略,默认值为 0 ,即查找第一列。 我们可以清楚的发现易语言自带的这个命令有一个很明显的缺点,那就是只能搜索标题的列,也就是第一列,子列是无法进行搜索的。而且只能选择精确匹配或者内容开头匹配,无法进行中间匹配。这给我们的搜索个性化带来了极大的限制。因此我们通常不使用该命令来进行搜索。 怎么办呢?我们可以自己来扩展我们自己的个性化搜索嘛。 这就是我们下一部分要详细讲解的个性化的即时搜索的实现。 --- **即时搜索实现** 看看我是如何结合超级列表框实现即时搜索的。 被搜索的内容确定为什么呢?在本案例中,我会演示只搜索第一列——文件名。 因为是即时搜索,因此我们想营造编辑框内容改变,下面的超级列表框的显示内容就同步改变的效果。 所以我们可以考虑,在每次显示前,进行一次新的遍历。这是一种解决方案。 但是这么做会有一个小问题,就是你要搜索遍历的范围过大的时候,每次搜索内容改变就进行一次遍历,势必会极大影响搜索效率。 因此,我们可以考虑换一个思路,比如前面遍历完成后,自动初始化一下即时搜索功能,也就是将前面搜索到的结果保存到数组中。 然后在编辑框内容改变事件中,直接对该数据库数组进行搜索,提高效率。 因此我们需要定义一个搜索初始化命令来保存超级列表框内容,该命令可以封装起来。我们来演示把它封装到我们的扩展模块中。 请看我们的视频演示吧! --- **课后作业** **课后作业:** 请大家,根据视频所学,完成即时搜索功能的接入。测试一下,是否满足了你的需求呢? 如果有时间和精力,请思考一下要是我想搜索整个超级列表框的内容呢?我该怎么做?代码该如何写,你可以自己完成吗? --- **请务必完成作业之后再看下一课!** 本案例——文件遍历器到本课为止就基本结束了。 下节课我们将对本案例进行总结。 以下是我们的视频教程: **在线观看:** http://v.youku.com/v_show/id_XMjg1MTczMjMzNg==.html **高清源文件下载:** <div class="hideContent">该部分仅登录用户可见</div> 感谢大家的收看,我们下期再见! 最后修改:2021 年 08 月 09 日 © 允许规范转载 赞 赠人玫瑰,手留余香