仰望天空11 发表于 2024-3-1 07:47:03

易语言高级表格实现选中图片展开收缩,图片复制源码

.版本 2
.支持库 EDataStructure
.支持库 eGrid

.子程序 _高级表格1_光标位置改变

高级表格_表格图片展开收缩 (高级表格1)


.子程序 _高级表格2_光标位置改变

高级表格_表格图片展开收缩 (高级表格2)

.子程序 高级表格_表格图片展开收缩
.参数 表格, 高级表格
.局部变量 操作表格, 节点, 静态
.局部变量 当前操作表格句柄, 整数型
.局部变量 表格当前选中行, 整数型
.局部变量 表格当前选中列, 整数型
.局部变量 表格当前选中行高, 整数型
.局部变量 表格当前选中列宽, 整数型
.局部变量 操作表格_表格展开图片行, 整数型
.局部变量 操作表格_表格展开图片列, 整数型
.局部变量 操作表格_表格展开图片原行高, 整数型
.局部变量 操作表格_表格展开图片原列宽, 整数型
.局部变量 图片, 字节集
.局部变量 图片宽度, 整数型
.局部变量 图片高度, 整数型

操作表格.取数值 (到文本 (表格.取窗口句柄 ()), 当前操作表格句柄)


表格当前选中行 = 表格.取光标行号 ()
表格当前选中列 = 表格.取光标列号 ()
表格当前选中行高 = 表格.取行高 (表格当前选中行)
表格当前选中列宽 = 表格.取列宽 (表格当前选中列)
.如果真 (当前操作表格句柄 = 0)' 判断是否首次操作表格
    操作表格.加入属性 (到文本 (表格.取窗口句柄 ()), 表格.取窗口句柄 ())' 表格存在赋值真
    操作表格.取数值 (到文本 (表格.取窗口句柄 ()), 当前操作表格句柄)

    操作表格.加入属性 (到文本 (当前操作表格句柄) + “row”, 表格当前选中行)' 赋值初始行
    操作表格.加入属性 (到文本 (当前操作表格句柄) + “column”, 表格当前选中列)' 赋值初始列
    操作表格.加入属性 (到文本 (当前操作表格句柄) + “height”, 表格当前选中行高)' 赋值初始行高
    操作表格.加入属性 (到文本 (当前操作表格句柄) + “width”, 表格当前选中列宽)' 赋值初始列宽

    操作表格_表格展开图片行 = 表格当前选中行
    操作表格_表格展开图片列 = 表格当前选中列
    操作表格_表格展开图片原行高 = 表格当前选中行高
    操作表格_表格展开图片原列宽 = 表格当前选中列宽
.如果真结束

操作表格.取数值 (到文本 (当前操作表格句柄) + “row”, 操作表格_表格展开图片行)
操作表格.取数值 (到文本 (当前操作表格句柄) + “column”, 操作表格_表格展开图片列)
操作表格.取数值 (到文本 (当前操作表格句柄) + “height”, 操作表格_表格展开图片原行高)
操作表格.取数值 (到文本 (当前操作表格句柄) + “width”, 操作表格_表格展开图片原列宽)

' 先收缩上一次图片单元格,并把参数设置为-1,防止重复调用
.如果真 (操作表格_表格展开图片行 ≠ -1 且 操作表格_表格展开图片列 ≠ -1)
    表格.置行高 (操作表格_表格展开图片行, 操作表格_表格展开图片原行高)
    表格.置列宽 (操作表格_表格展开图片列, 操作表格_表格展开图片原列宽)
    操作表格.修改属性 (到文本 (当前操作表格句柄) + “row”, -1)
    操作表格.修改属性 (到文本 (当前操作表格句柄) + “column”, -1)
    操作表格.修改属性 (到文本 (当前操作表格句柄) + “height”, -1)
    操作表格.修改属性 (到文本 (当前操作表格句柄) + “width”, -1)
.如果真结束

' 展开图片
.如果真 (表格.取列类型 (表格当前选中列) = #表格常量.图片型)


    图片 = 到字节集 (表格.取数据 (表格当前选中行, 表格当前选中列))
    .如果真 (取字节集长度 (图片) > 0)
      图片宽度 = 图片_取宽度 (图片)
      图片高度 = 图片_取高度 (图片)

      表格.置行高 (表格当前选中行, 图片高度)
      表格.置列宽 (表格当前选中列, 图片宽度)

      操作表格.修改属性 (到文本 (当前操作表格句柄) + “row”, 表格当前选中行)' 赋值初始行
      操作表格.修改属性 (到文本 (当前操作表格句柄) + “column”, 表格当前选中列)' 赋值初始列
      操作表格.修改属性 (到文本 (当前操作表格句柄) + “height”, 表格当前选中行高)' 赋值初始行高
      操作表格.修改属性 (到文本 (当前操作表格句柄) + “width”, 表格当前选中列宽)' 赋值初始列宽

    .如果真结束

.如果真结束



.子程序 高级表格_复制图片
.参数 表格, 高级表格
.局部变量 图片, 字节集

.如果真 (表格.取列类型 (表格.取光标列号 ()) = #表格常量.图片型)
    图片 = 到字节集 (高级表格1.取数据 (高级表格1.取光标行号 (), 高级表格1.取光标列号 ()))
    .如果真 (取字节集长度 (图片) > 0)
      ' 延时100毫秒再复制,因为高级表格本身会复制一次空白内容,太快了会给空白内容覆盖
      程序_延时 (100, )
      剪辑板_置图片 (图片)
    .如果真结束

.如果真结束



.子程序 _高级表格1_按下某键, 逻辑型
.参数 键代码, 整数型
.参数 功能键状态, 整数型

.如果真 (功能键状态 = #Ctrl键状态 且 键代码 = #C键)
    高级表格_复制图片 (高级表格1)
.如果真结束

qq1354596367 发表于 2024-3-3 01:08:59

谢谢楼主,对了新人问下,这个也要15字吗

鸟文是帅逼 发表于 2024-3-4 18:30:55

这个资源我一直想要

啦啦啦啦啦啦 发表于 2024-3-6 11:52:51

我今天才找到这个论坛,非常高兴,加入到觅风老师的论坛

卧槽你妹 发表于 2024-3-8 05:14:48

学习下学习下学习下

我去前面探探路 发表于 2024-3-9 22:36:44

11111111111111111111111111

sdajhdjannda 发表于 2024-3-12 06:21:50

谢谢分享好人有好报6666666

你大爷 发表于 2024-3-14 14:06:57

这个资源我一直想要

443651433.. 发表于 2024-3-16 21:52:03

666学习了!!

卧槽你妹 发表于 2024-3-19 05:37:10

支持你们一下下哈
页: [1] 2
查看完整版本: 易语言高级表格实现选中图片展开收缩,图片复制源码