易语言高级对话框V1.49模块源码
系统结构:高级对话框测试,高级信息框,高级浏览文件夹,高级浏览文件夹_回调函数,高级颜色选择器,清除,初始化,打开,文件名,
======EC_得力软件_高级对话框_接口程序集
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ 高级对话框测试
| |
| |------ 高级信息框
| |
| |------ 高级浏览文件夹
| |
| |------ 高级浏览文件夹_回调函数
| |
| |------ 高级颜色选择器
| |
| |
======高级对话框
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 清除
| |
| |------ 初始化
| |
| |------ 打开
| |
| |------ 文件名
调用的DLL命令:
.程序集 高级对话框, , 公开, 作者:小飞侠 本类参考了lihaidomain的源码,在此表示感谢!(同时需要感谢binbinbin的整理!)
.程序集变量 集_打开文件, 类型_文件结构
.程序集变量 集_对话框类型, 整数型, , , 0.#打开文件对话框(默认) 1.#保存文件对话框
.程序集变量 集_默认文件名, 文本型
.程序集变量 集_创建时提示, 整数型, , , 当类型为打开文件对话框时,如果用户指定了一个不存在的文件名称,是否提示用户即将创建它。默认值为假。
.程序集变量 集_文件必须存在, 整数型, , , 当类型为打开文件对话框时,是否允许用户指定一个不存在的文件。默认值为真。
.程序集变量 集_文件覆盖提示, 整数型, , , 当类型为保存文件对话框时,如果用户指定了一个已经存在的文件,是否询问用户确定覆盖此文件。默认值为真。
.程序集变量 集_目录必须存在, 整数型, , , 是否允许用户指定一个不存在的目录。默认值为真。
.程序集变量 集_是否支持多选, 整数型, , , 是否需要使用多选。默认值为假。
.程序集变量 集_被选择文件名, 文本型, , , 执行打开命令后,用来临时保存被打开或保存的文件名或文件名数组(以分号进行分割保存的文本变量)
.子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用
清除 ()
.子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用
.子程序 清除, , 公开, 将本对话框的内容释放并清空。如果不调用本方法,则本对话框在退出其作用区域时会自动被释放。例如:假设本对话框存在于子程序局部变量中,当子程序调用退出时,本对话框会被自动释放。
集_创建时提示 = #OFN_CREATEPROMPT
集_文件必须存在 = #OFN_FILEMUSTEXIST
集_文件覆盖提示 = #OFN_OVERWRITEPROMPT
集_目录必须存在 = #OFN_PATHMUSTEXIST
连续赋值 (0, 集_对话框类型, 集_是否支持多选)
连续赋值 (“”, 集_默认文件名, 集_被选择文件名)
.子程序 初始化, , 公开, 初始化设置高级对话框组件的基本参数
.参数 对话框类型, 整数型, 可空, 0.#打开文件对话框(默认) 1.#保存文件对话框
.参数 对话框标题, 文本型, 可空, 对话框窗口标题,如为空则显示默认文本;
.参数 过滤器, 文本型, 可空, 通过设置过滤器,来过滤不需要显示的文件,如果需要设置多后缀名文件,可以用“;”来分隔,例如:“音乐文件(*.mp3;*.wav)|*.mp3;*.wav|视频文件(*.rm;*.avi;*.mkv)|*.rm;*.avi;*.mkv”,如为空值则打开所有类型文件或保存为任意类型的文件;
.参数 初始过滤器, 整数型, 可空, 指定初始的过滤器,0为第一个过滤器。默认值为0;
.参数 初始目录, 文本型, 可空, 对话框创建后,自动跳转到的目录。如不指定,则一般情况下默认路径为从“我的文档”开始;
.参数 默认文件名, 文本型, 可空, 对话框创建后,默认显示的文件名名称,多用于[保存文件对话框],如自行指定,请不需要指定扩展名,扩展名将以当前使用的过滤器为准;
.参数 创建时提示, 逻辑型, 可空, 当类型为打开文件对话框时,如果用户指定了一个不存在的文件名称,是否提示用户即将创建它。默认值为真。
.参数 文件必须存在, 逻辑型, 可空, 当类型为打开文件对话框时,是否允许用户指定一个不存在的文件。默认值为真。
.参数 文件覆盖提示, 逻辑型, 可空, 当类型为保存文件对话框时,如果用户指定了一个已经存在的文件,是否询问用户确定覆盖此文件。默认值为真。
.参数 目录必须存在, 逻辑型, 可空, 是否允许用户指定一个不存在的目录。默认值为真。
.参数 是否支持多选, 逻辑型, 可空, 是否允许当前对话框同时打开多个文件。默认值为假。
.局部变量 部_临时过滤器, 文本型
.局部变量 部_过滤器数组, 文本型, , "0"
高级对话框.清除 ()
' ========================================================================
集_被选择文件名 = “” ' 清空此值,否则在同一程序集中二次调用可能会返回前一次的结果。
集_默认文件名 = 默认文件名
集_对话框类型 = 对话框类型
部_临时过滤器 = 选择 (对话框类型 = #打开文件对话框, “所有文件(*.*)”, “自定文件(*.*)”)
' ========================================================================
集_打开文件.实例句柄 = API_GetModuleHandle (取执行文件名 ())
集_打开文件.标题文本 = 对话框标题
集_打开文件.初始目录 = 初始目录
'源码来源于[易语言源码网 www.e5a5x.com]
集_打开文件.过滤器 = 到字节集 (选择 (过滤器 ≠ “”, 过滤器, 部_临时过滤器))
集_打开文件.过滤器 = 子字节集替换 (集_打开文件.过滤器, { 124 }, { 0 }, , ) + { 0, 0 }
集_打开文件.过滤器索引 = 选择 (初始过滤器 ≤ 0, 1, 初始过滤器 + 1)
' ========================================================================
部_过滤器数组 = 分割文本 (过滤器, “|”, )
.如果真 (取数组成员数 (部_过滤器数组) ≥ 集_打开文件.过滤器索引 + 1) ' 过滤器索引从1开始,扩展名从是2开始,因此再加1;
集_打开文件.默认扩展名 = 部_过滤器数组 [集_打开文件.过滤器索引 + 1]
集_打开文件.默认扩展名 = 取文本右边 (集_打开文件.默认扩展名, 取文本长度 (集_打开文件.默认扩展名) - 倒找文本 (集_打开文件.默认扩展名, “.”, , 假))
'本源码来自易语言源码网 www.e5a5x.com 欢迎使用
.如果真结束
' ========================================================================
.如果真 (是否为空 (创建时提示) = 假)
集_创建时提示 = 选择 (文件必须存在, #OFN_CREATEPROMPT, 0)
' //当类型为打开文件对话框时,如果用户指定了一个不存在的文件名称,是否提示用户即将创建它。默认值为假。
.如果真结束
'本源码来自易语言源码网 www.e5a5x.com 欢迎使用
.如果真 (是否为空 (文件必须存在) = 假)
集_文件必须存在 = 选择 (文件必须存在, #OFN_FILEMUSTEXIST, 0)
' //当类型为打开文件对话框时,是否允许用户指定一个不存在的文件。默认值为真。
.如果真结束
'本源码来自易语言源码网 www.e5a5x.com 欢迎使用
.如果真 (是否为空 (文件覆盖提示) = 假)
集_文件覆盖提示 = 选择 (文件覆盖提示, #OFN_OVERWRITEPROMPT, 0)
' //当类型为保存文件对话框时,如果用户指定了一个已经存在的文件,是否询问用户确定覆盖此文件。默认值为真。
'本源码来自易语言源码网 www.e5a5x.com 欢迎使用
.如果真结束
.如果真 (是否为空 (目录必须存在) = 假)
集_目录必须存在 = 选择 (目录必须存在, #OFN_PATHMUSTEXIST, 0)
' //是否允许用户指定一个不存在的目录。默认值为真。
.如果真结束
.如果真 (是否为空 (是否支持多选) = 假)
集_是否支持多选 = 选择 (是否支持多选, #OFN_ALLOWMULTISELECT, 0)
' //是否需要使用文件多选。默认值为假。
.如果真结束
.子程序 打开, 逻辑型, 公开, 打开当前类型的对话框(通过[初始化]命令进行设置),返回一个逻辑值。如果为真,表示用户已通过该对话框输入了有效数据,否则表示用户取消了该对话框,且没有输入任何有效数据。
.参数 父窗口句柄, 整数型, , 指定当前对话框的父窗口句柄
.参数 缓冲区长度, 整数型, 可空, 指定当前对话框可接受的最大缓冲区长度,本命令内部默认值为:单选[256]、多选[2048],如果该长度值不能满足您的要求,请自行指定。
.局部变量 部_循环计次, 整数型
.局部变量 部_已选文件, 文本型
.局部变量 部_临时文件, 文本型
.局部变量 部_是否成功, 逻辑型
.局部变量 部_目标文件夹, 文本型
.局部变量 部_字节集变量, 字节集
.局部变量 部_文件名数组, 文本型, , "0"
集_打开文件.文件名 = { }
集_打开文件.窗口句柄 = 父窗口句柄
集_被选择文件名 = 选择 (集_默认文件名 = “”, “”, 集_默认文件名)
部_字节集变量 = 选择 (集_被选择文件名 = “”, { }, 子字节集替换 (到字节集 (集_被选择文件名), { 59 }, { 0 }, , ))
' ========================================================================
缓冲区长度 = 选择 (是否为空 (缓冲区长度), 选择 (集_是否支持多选 = 0, 256, 2048), 缓冲区长度)
集_打开文件.文件名 = 部_字节集变量 + 取空白字节集 (缓冲区长度 - 取字节集长度 (部_字节集变量) + 1)
集_打开文件.文件名最大长度 = 取字节集长度 (集_打开文件.文件名)
集_打开文件.结构大小 = 76
' ========================================================================
.判断开始 (集_对话框类型 = #打开文件对话框) ' 打开文件,
集_打开文件.标记 = 位或 (#OFN_HIDEREADONLY, #OFN_EXPLORER, #OFN_ENABLESIZING, 集_创建时提示, 集_文件必须存在, 集_文件覆盖提示, 集_目录必须存在, 0, 集_是否支持多选)
部_是否成功 = API_GetOpenFileName (集_打开文件)
.判断 (集_对话框类型 = #保存文件对话框) ' 保存文件
集_打开文件.标记 = 位或 (#OFN_EXPLORER, #OFN_ENABLESIZING, 集_文件覆盖提示, 集_目录必须存在, 0, 集_是否支持多选)
部_是否成功 = API_GetSaveFileName (集_打开文件)
.默认
.判断结束
' ========================================================================
.如果真 (部_是否成功 = 真)
部_字节集变量 = 集_打开文件.文件名
部_字节集变量 = 取字节集左边 (部_字节集变量, 寻找字节集 (部_字节集变量, { 0, 0 }, )) ' 以字节0为结尾;
.判断开始 (集_是否支持多选 ≠ #OFN_ALLOWMULTISELECT) ' 单选状态
部_已选文件 = 取字节集数据 (部_字节集变量, #文本型, )
.判断 (集_是否支持多选 = #OFN_ALLOWMULTISELECT) ' 多选状态
' 因为“0”会被认为是结束符,所以这里先将结束符“0”替换为分割符“|”,最终返回格式为“x:\xxx|a.xxx|b.xxx|c.xxx”;
部_字节集变量 = 子字节集替换 (部_字节集变量, { 0 }, { 124 }, , )
部_文件名数组 = 分割文本 (到文本 (部_字节集变量), “|”, )
.如果真 (取数组成员数 (部_文件名数组) > 1)
部_目标文件夹 = 部_文件名数组 [1]
删除成员 (部_文件名数组, 1, 1)
.如果真 (取文本右边 (部_目标文件夹, 1) ≠ “\”)
部_目标文件夹 = 部_目标文件夹 + “\”
.如果真结束
.如果真结束
.计次循环首 (取数组成员数 (部_文件名数组), 部_循环计次)
.如果 (寻找文本 (部_文件名数组 [部_循环计次], “:”, , 真) = -1) ' 判断是否为完整路径;
部_临时文件 = 部_目标文件夹 + 部_文件名数组 [部_循环计次]
.否则
部_临时文件 = 部_文件名数组 [部_循环计次]
.如果结束
部_已选文件 = 部_已选文件 + 部_临时文件 + “;”
.计次循环尾 ()
.默认
.判断结束
.如果真结束
' ========================================================================
集_被选择文件名 = 部_已选文件
返回 (部_是否成功)
.子程序 文件名, 文本型, 公开, 返回被打开或选择的文件名。如为多选状态,文件路径以";"分隔。
返回 (集_被选择文件名)
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言两个文件内存中通讯源码,子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错...
易语言易模块管理器Include目录源码,CopyTo_CreateProcessDebugInfo,CopyTo_CreateThreadDebugInfo,CopyTo_ExitThreadDebugInfo,CopyTo_ExitProcessDebugInfo,CopyTo_LoadDllDebugInfo,CopyTo_UnloadDllDebugInfo,CopyTo_ExceptionDebugInfo,Copy...
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错误信息,读入字节集,读入2M字节集,清除文件缓冲区,读入文本,写出文本,写文本行,读入一行,插入字节集,取文件号...
初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...