本帖最后由 NOCOL 于 2016-10-19 14:58 编辑
窗口程序集名 | 保 留 | 保 留 | 备 注 | 通用对话框类 | | | | 变量名 | 类 型 | 数组 | 备 注 | 文件覆盖提示1 | 整数型 | | 目录必须存在1 | 整数型 | | 不改变目录1 | 整数型 | | 是否多选1 | 整数型 | | 文件记录 | 字节集 | | 打开文件 | 打开文件名_ | | 创建时提示1 | 整数型 | | 文件必须存在1 | 整数型 | |
创建时提示1 = #OFN_CREATEPROMPT 文件必须存在1 = #OFN_FILEMUSTEXIST 文件覆盖提示1 = #OFN_OVERWRITEPROMPT 目录必须存在1 = #OFN_PATHMUSTEXIST 不改变目录1 = 0 是否多选1 = 0 |
文件对话框初始化 | | | |
过滤器 | 文本型 | | | | 初始过滤器 | 整数型 | | | | 初始目录 | 文本型 | | | | 默认文件后缀 | 文本型 | | | | 创建时提示 | 逻辑型 | | | | 文件必须存在 | 逻辑型 | | | | 文件覆盖提示 | 逻辑型 | | | | 目录必须存在 | 逻辑型 | | | | 不改变目录 | 逻辑型 | | | | 是否多选 | 逻辑型 | | | |
打开文件.实例句柄 = 取实例句柄_ (取执行文件名 ()) 打开文件.过滤器 = 子字节集替换 (到字节集 (删全部空 (过滤器 )), { 124 }, { 0 }, , ) + { 0 } + { 0 }打开文件.过滤器索引 = 选择 (初始过滤器 ≤ 0, 1, 初始过滤器 + 1 )打开文件.初始目录 = 初始目录 打开文件.默认扩展名 = 默认文件后缀 如果真 (是否为空 (创建时提示 ) = 假)创建时提示1 = 选择 (文件必须存在, #OFN_CREATEPROMPT, 0 ) 如果真 (是否为空 (文件必须存在 ) = 假)文件必须存在1 = 选择 (文件必须存在, #OFN_FILEMUSTEXIST, 0 ) 如果真 (是否为空 (文件覆盖提示 ) = 假)文件覆盖提示1 = 选择 (文件覆盖提示, #OFN_OVERWRITEPROMPT, 0 ) 如果真 (是否为空 (目录必须存在 ) = 假)目录必须存在1 = 选择 (目录必须存在, #OFN_PATHMUSTEXIST, 0 ) 如果真 (是否为空 (不改变目录 ) = 假)不改变目录1 = 选择 (不改变目录, #OFN_NOCHANGEDIR, 0 ) 如果真 (是否为空 (是否多选 ) = 假)是否多选1 = 选择 (是否多选, #OFN_ALLOWMULTISELECT, 0 ) |
打开 | 逻辑型 | | |
窗口句柄 | 整数型 | | | | 类型 | 整数型 | | | | 文件名 | 文本型 | | | | 对话框标题 | 文本型 | | | | 对话框样式 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 是否成功 | 逻辑型 | | | temp | 字节集 | | | 文件名数组 | 文本型 | | 0 | N | 整数型 | | | 所选文件 | 文本型 | | |
打开文件.标题 = 对话框标题 连续赋值 ({ }, 打开文件.文件名, 打开文件.文件标题, temp, 文件记录 )打开文件.窗口句柄 = 窗口句柄 如果真 (不改变目录1 = 0 )文件记录 = { }判断 (文件名 ≠ “”)temp = 到字节集 (文件名 )temp = 子字节集替换 (temp, { 59 }, { 0 }, , )temp = 文件记录 打开文件.文件名 = temp + 取空白字节集 (选择 (是否多选1 ≠ 0, 2048, 256) - 取字节集长度 (temp) + 1)打开文件.文件名最大长度 = 取字节集长度 (打开文件.文件名 )打开文件.结构大小 = 76 判断 (类型 = 0 ) 打开文件.标记 = 位或 ( #OFN_HIDEREADONLY, #OFN_EXPLORER, #OFN_ENABLESIZING, 创建时提示1, 文件必须存在1, 文件覆盖提示1, 目录必须存在1, 不改变目录1, 是否多选1 )如果真 (对话框样式 ≠ 0 )打开文件.标记 = 位或 (打开文件.标记, #OFN_ENABLEHOOK, #OFN_EXPLORER )是否成功 = 取打开文件名_ (打开文件)判断 (类型 = 1 ) 打开文件.标记 = 位或 ( #OFN_EXPLORER, #OFN_ENABLESIZING, 文件覆盖提示1, 目录必须存在1, 不改变目录1, 是否多选1 )是否成功 = 取保存文件名_ (打开文件 )如果真 (是否成功 ) 文件记录 = 打开文件.文件名 temp = 打开文件.文件名 temp = 取字节集左边 (temp, 寻找字节集 (temp, { 0, 0 }, ) - 1 ) 判断 (寻找字节集 (temp, { 0 }, ) ≠ -1 且 是否多选1 = #OFN_ALLOWMULTISELECT )文件名数组 = 分割文本 (到文本 (子字节集替换 (temp, { 0 }, { 124 }, , )), “|”, )如果真 (取文本右边 (文件名数组 [1 ], 1 ) ≠ “\”)文件名数组 [1 ] = 文件名数组 [1 ] + “\”计次循环首 (取数组成员数 (文件名数组 ) - 1, N )判断 (取数组成员数 (文件名数组 ) - 1 ≠ N )所选文件 = 所选文件 + 文件名数组 [1 ] + 文件名数组 [N + 1 ] + “;”所选文件 = 所选文件 + 文件名数组 [1 ] + 文件名数组 [N + 1 ]处理事件 ()计次循环尾 ()文件名 = 所选文件 文件名 = 取字节集数据 (temp, #文本型, )连续赋值 ({ }, 打开文件.文件名, 打开文件.文件标题, temp, 文件记录)所选文件 = “”清除数组 (文件名数组 ) 返回 (是否成功 )
部分源码,源码非原创,看到问答区有人求,论坛也没有,顺势发出来把,使用API调用系统对话框
当然,如果有好评,以后有好东西我也会发出来的哟,你们的支持就是我的动力
通用对话框含(多文件对话框).zip
(4.15 KB, 下载次数: 291)
|