|
当当当!!!欢迎收看雪山凌狐教程!我是讲师雪山凌狐。
感谢大家点进来查看我们这套教程的第33课!!!一流精良制作PPT+视频教程详细讲解,包君满意!
如果觉得课程对你有帮助的话,欢迎给我赠送好评和精币哦~他们是免费的,不会消耗自己的哟~让更多的人看到!
视频教程:
文字教程:
这节课我们来密切结合我们的超级列表框,实现我们的文件遍历器的即时搜索功能的接入吧!
查找表项
在超级列表框自带的命令中,有一个命令格外引人注目,那就是“查找表项”,让我们来看一下它附带的帮助文档:
调用格式: 〈整数型〉 对象.查找表项 (文本型 标题,[整数型 起始查找位置],[逻辑型 是否精确匹配],[整数型 列索引]) - 扩展界面支持库一->超级列表框
英文名称:Find
查找具有指定标题的表项,成功返回被找到表项的位置索引,失败返回 -1 。本命令为初级对象成员命令。
参数<1>的名称为“标题”,类型为“文本型(text)”。本参数指定欲查找表项的标题文本。
参数<2>的名称为“起始查找位置”,类型为“整数型(int)”,可以被省略。本参数指定查找表项的起始位置。如果本参数被省略,默认值为 0 ,即从首项开始查找。
参数<3>的名称为“是否精确匹配”,类型为“逻辑型(bool)”,可以被省略。本参数指定匹配标题文本时是否为精确匹配,如果本参数为假,则只要表项标题首部包含指定文本即认为匹配成功。如果本参数被省略,默认值为真。
参数<4>的名称为“列索引”,类型为“整数型(int)”,可以被省略。本参数仅在报表模式下有效,用于指定查找表项中的哪一列。如为 -1,表示查找所有列。如果本参数被省略,默认值为 0 ,即查找第一列。
我们可以清楚的发现易语言自带的这个命令有一个很明显的缺点,那就是只能搜索标题的列,也就是第一列,子列是无法进行搜索的。而且只能选择精确匹配或者内容开头匹配,无法进行中间匹配。这给我们的搜索个性化带来了极大的限制。因此我们通常不使用该命令来进行搜索。
怎么办呢?我们可以自己来扩展我们自己的个性化搜索嘛。
这就是我们下一部分要详细讲解的个性化的即时搜索的实现。
即时搜索实现
看看我是如何结合超级列表框实现即时搜索的。
被搜索的内容确定为什么呢?在本案例中,我会演示只搜索第一列——文件名。
因为是即时搜索,因此我们想营造编辑框内容改变,下面的超级列表框的显示内容就同步改变的效果。
所以我们可以考虑,在每次显示前,进行一次新的遍历。这是一种解决方案。
但是这么做会有一个小问题,就是你要搜索遍历的范围过大的时候,每次搜索内容改变就进行一次遍历,势必会极大影响搜索效率。
因此,我们可以考虑换一个思路,比如前面遍历完成后,自动初始化一下即时搜索功能,也就是将前面搜索到的结果保存到数组中。
然后在编辑框内容改变事件中,直接对该数据库数组进行搜索,提高效率。
因此我们需要定义一个搜索初始化命令来保存超级列表框内容,该命令可以封装起来。我们来演示把它封装到我们的扩展模块中。
请看我们的视频演示吧!
课后作业
课后作业:
请大家,根据视频所学,完成即时搜索功能的接入。测试一下,是否满足了你的需求呢?
如果有时间和精力,请思考一下要是我想搜索整个超级列表框的内容呢?我该怎么做?代码该如何写,你可以自己完成吗?
请务必完成作业之后再看下一课!
本案例——文件遍历器到本课为止就基本结束了。
下节课我们将对本案例进行总结。
高清源文件下载:
链接:https://share.weiyun.com/4953102ec44d1d28250a4f446f070af1
第34课地址:
暂未发布,请耐心等待。
补充内容 (2017-6-30 09:16):
第34课地址:http://bbs.125.la/thread-14038480-1-1.html |
|