易语言图片框怎么显示文件夹的里的图片,点击按钮显示下一张?

如题所述

  此效果可以通过枚举文件,配合“读入文件 ()”和数组操作来实现。

  代码如下:

.版本 2

.程序集 窗口程序集_启动窗口
.程序集变量 当前位置, 整数型
.程序集变量 文件列表, 文本型, , "0"

.子程序 __启动窗口_创建完毕

枚举文件 (取运行目录 () + “\”, “.jpg”, 文件列表)
.如果真 (取数组成员数 (文件列表) > 0)
    当前位置 = 1
    图片框1.图片 = 读入文件 (文件列表 [1])
.如果真结束
.如果真 (取数组成员数 (文件列表) > 1)
    按钮_下一张.禁止 = 假
.如果真结束


.子程序 _按钮_上一张_被单击

当前位置 = 当前位置 - 1
图片框1.图片 = 读入文件 (文件列表 [当前位置])
.如果 (当前位置 ≤ 1)
    按钮_上一张.禁止 = 真
.否则
    按钮_上一张.禁止 = 假
    按钮_下一张.禁止 = 假
.如果结束


.子程序 _按钮_下一张_被单击

当前位置 = 当前位置 + 1
图片框1.图片 = 读入文件 (文件列表 [当前位置])
.如果 (当前位置 ≥ 取数组成员数 (文件列表))
    按钮_下一张.禁止 = 真
.否则
    按钮_上一张.禁止 = 假
    按钮_下一张.禁止 = 假
.如果结束


.子程序 枚举文件
.参数 欲枚举文件的目录, 文本型, , 将要被枚举文件的目录。
.参数 欲枚举的文件后缀名, 文本型, 可空, 请输入如“.bmp”“.mp3”的后缀名。
.参数 欲保存结果的变量, 文本型, 参考 数组, 保存结果的文本型数组。
.局部变量 临_目录, 文本型
.局部变量 临_文件, 文本型
.局部变量 i, 整数型, 静态

' 枚举目录
重定义数组 (欲保存结果的变量, 假, 0)
临_目录 = 寻找文件 (欲枚举文件的目录 + “*”, #子目录)  ' 第一次寻找要提供相应条件
.判断循环首 (临_目录 ≠ “”)  ' 只要找到的结果不为空 则继续寻找
    .如果真 (临_目录 ≠ “.” 且 临_目录 ≠ “..”)
        枚举文件 (欲枚举文件的目录 + 临_目录 + “\”, 欲枚举的文件后缀名, 欲保存结果的变量)
    .如果真结束
    临_目录 = 寻找文件 (, #子目录)  ' 之后 系统会默认使用最近一次提供的条件 进行寻找下一个结果,所以这里只需要指定寻找对象:#子目录
.判断循环尾 ()
' 枚举文件
临_文件 = 寻找文件 (欲枚举文件的目录 + “*” + 欲枚举的文件后缀名, )  ' 第一次寻找要提供相应条件
.判断循环首 (临_文件 ≠ “”)  ' 只要找到的结果不为空 则继续寻找
    临_文件 = 欲枚举文件的目录 + 临_目录 + 临_文件  ' 文件全路径=目录+文件名+后缀名
    加入成员 (欲保存结果的变量, 临_文件)
    临_文件 = 寻找文件 (, )
.判断循环尾 ()

  在程序中,演示效果如下:

  此段代码即符合你的要求。

  源码已附在下面。

  如有疑问请追问。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-22
.版本 2
.支持库 shell

.程序集 窗口程序集1
.程序集变量 图片, 文本型, , "0"
.程序集变量 指针, 整数型
.程序集变量 目录, 文本型
.程序集变量 文件名, 文本型

.子程序 __启动窗口_创建完毕

目录 = 浏览文件夹 (“请选择目录”, 真)
.如果真 (目录 = “”)
目录 = 取运行目录 ()
.如果真结束
文件名 = 寻找文件 (目录 + “\*.jpg”, )
.循环判断首 ()
文件名 = 寻找文件 (, )
.如果真 (文件名 = “”)
跳出循环 ()
.如果真结束
加入成员 (图片, 文件名)
.循环判断尾 (文件名 ≠ “”)
指针 = 1
图片框1.显示方式 = 1
按钮1.标题 = “上一张”
按钮2.标题 = “下一张”
显示图片 ()

.子程序 _按钮1_被单击

指针 = 指针 - 1
.如果真 (指针 < 1)
指针 = 取数组成员数 (图片)
.如果真结束
显示图片 ()

.子程序 _按钮2_被单击

指针 = 指针 + 1
.如果真 (指针 > 取数组成员数 (图片))
指针 = 1
.如果真结束
显示图片 ()

.子程序 显示图片

图片框1.图片 = 读入文件 (目录 + “\” + 图片 [指针])
第2个回答  2014-12-22
在按钮1被单击事件子程序里设置一个局部表态变量NN 代码如下: NN=NN+1 如果真(NN>5) NN=1
相似回答