开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 71|回复: 1
收起左侧

[易语言] 打印图片框和编辑框问题

[复制链接]
结帖率:96% (469/489)
发表于 昨天 20:58 | 显示全部楼层 |阅读模式   内蒙古自治区乌海市
5精币
  
子程序名返回值类型公开备 注
_按钮_载入图片_被单击  
变量名类 型静态数组备 注
文件名数组文本型0
原始宽整数型 
原始高整数型 
i整数型 
新图片框图片框 
图片长宽比双精度小数型 
打印ID整数型 
' 1. 获取所有选中的文件
文件名数组 = 多文件对话框 (“请选择图片(可多选)”, “图片文件|*.jpg;*.bmp;*.png”, 0, , , )
如果真 (取数组成员数 (文件名数组) = 0)
当前导入图片 =   ' 标识是否导入图片,用于动画旋转
返回 ()
当前导入图片 =   ' 标识是否导入图片,用于动画旋转
' 2. 遍历每一个文件
计次循环首 (取数组成员数 (文件名数组), i)
' A. 复制组件:以图片框1为模板,复制出一个新的
复制窗口组件 (图片框1, 新图片框)
加入成员 (生成的图片框数组, 新图片框)  ' 加入数组管理
' B. 加载图片数据
新图片框.图片 = 读入文件 (文件名数组 [i])
' C. 获取打印ID并存入“标记”属性 (非常重要,打印时要用)
打印ID = 载入图片 (文件名数组 [i])
新图片框.标记 = 到文本 (打印ID)
' D. 计算尺寸
原始宽 = 打印机1.取图片宽度 (打印ID)
原始高 = 打印机1.取图片高度 (打印ID)
如果 (原始高 ≠ 0)
图片长宽比 = 原始宽 ÷ 原始高
图片长宽比 = 1

' E. 设置新组件属性
新图片框.可视 = 真
新图片框.宽度 = 200
新图片框.高度 = 200 ÷ 图片长宽比
' 错开一点位置,防止重叠
新图片框.移动 ( (i - 1) × 20, (i - 1) × 20, , )
新图片框.置父窗口 (外形框1)  ' 确保在纸张内
新图片框.显示方式 = 2
计次循环尾 ()
子程序名返回值类型公开备 注
_按钮_打印_被单击  
变量名类 型静态数组备 注
打印比例双精度小数型 
最终X整数型 
最终Y整数型 
最终W整数型 
最终H整数型 
i整数型 
当前图图片框 
当前ID整数型 
如果真 (组合框1.现行选中项 = 0)  ' 纸张方向
如果真 (组合框4.现行选中项 = 0)  ' 纸张规格
打印机1.开始打印 (真, 真, #A4纸, #纵向, 2100, 2970)
如果真 (组合框4.现行选中项 = 1)
打印机1.开始打印 (真, 真, , #纵向, 1270, 1780)

如果真 (组合框1.现行选中项 = 1)  ' 纸张方向
如果真 (组合框4.现行选中项 = 0)  ' 纸张规格
打印机1.开始打印 (真, 真, #A4纸, #横向, 2100, 2970)
如果真 (组合框4.现行选中项 = 1)
打印机1.开始打印 (真, 真, , #横向, 1270, 1780)  ' 7寸相纸是多少

' 计算画布比例 (假设外形框1是A4纸预览)
打印比例 = 打印机1.打印区宽度 ÷ 外形框1.宽度
' 遍历所有生成的图片框
计次循环首 (取数组成员数 (生成的图片框数组), i)
当前图 = 生成的图片框数组 [i]
如果真 (当前图.可视 = )
' 1. 计算位置和大小
最终X = 当前图.左边 × 打印比例
最终Y = 当前图.顶边 × 打印比例
最终W = 当前图.宽度 × 打印比例
最终H = 当前图.高度 × 打印比例
' 2. 从标记中取出载入图片时返回的ID
当前ID = 到整数 (当前图.标记)
' 3. 打印
如果真 (当前ID ≠ 0)
打印机1.画图片 (当前ID, 最终X, 最终Y, 最终W, 最终H, )


计次循环尾 ()
打印机1.字体.字体大小 = 编辑框1.字体.字体大小
打印机1.字体.字体大小 = 编辑框1.字体.字体大小 × 3.779  ' 正确
打印机1.定位写出 (编辑框1.左边 × 10, 编辑框1.顶边 × 10, 编辑框1.内容)  ' 正确
打印机1.结束打印 ()
子程序名返回值类型公开备 注
_图片框1_鼠标右键被按下逻辑型 图片框菜单
参数名类 型参考可空数组备 注
横向位置整数型
纵向位置整数型
功能键状态整数型
当前图片框名称 = 取事件组件 ()
当前图片框名称.弹出菜单 (图片框菜单, , )
子程序名返回值类型公开备 注
_加入图片_被选择  
通用对话框1.初始目录 = 取特定目录 ( #系统桌面 )  ' 取运行目录 ()
通用对话框1.过滤器 = “所有图片(*.jpg;*.jpeg;*.png;*.bmp;*.gif;*.ico;*.webp;*.tiff;*.pcx;*.tif;*.tga;*.exif;*.fpx;*.svg;*.psd;*.cdr;*.pcd;*.dxf;*.ufo;*.eps;*.ai;*.hdri;*.raw;*.wmf;*.flic;*.emf;*.avif;*.apng)|*.jpg;*.jpeg;*.png;*.bmp;*.gif;*.ico;*.webp;*.tiff;*.pcx;*.tif;*.tga;*.exif;*.fpx;*.svg;*.psd;*.cdr;*.pcd;*.dxf;*.ufo;*.eps;*.ai;*.hdri;*.raw;*.wmf;*.flic;*.emf;*.avif;*.apng|JPEG格式(*.jpg;*.jpeg)|*.jpg;*.jpeg|PNG格式(*.png)|*.png|BMP格式(*.bmp)|*.bmp|GIF格式(*.gif)|*.gif|ICO格式(*.ico)|*.ico|Webp格式(*.webp)|*.webp|TIFF格式(*.tiff)|*.tiff|PCX格式(*.pcx)|*.pcx|TIF格式(*.tif)|*.tif|TGA格式(*.tga)|*.tga|EXIF格式(*.exif)|*.exif|FPX格式(*.fpx)|*.fpx|SVG格式(*.svg)|*.svg|PSD格式(*.psd)|*.psd|CDR格式(*.cdr)|*.cdr|PCD格式(*.pcd)|*.pcd|DXF格式(*.dxf)|*.dxf|UFO格式(*.ufo)|*.ufo|EPS格式(*.eps)|*.eps|AI格式(*.ai)|*.ai|HDRI格式(*.hdri)|*.hdri|RAW格式(*.raw)|*.raw|WMF格式(*.wmf)|*.wmf|FLIC格式(*.flic)|*.flic|EMF格式(*.emf)|*.emf|AVIF格式(*.avif)|*.avif|APNG格式(*.apng)|*.apng|全部文件(*.*)|*.*”  ' 正确【一次性所有格式全部显示和多个选项分别显示和全部文件三个选项。好!不带前缀注释】最全!好!共计28种格式扩展名。
通用对话框1.打开 ()
如果真 (通用对话框1.文件名 ≠ “”)
当前图片框名称.图片 = 读入文件 (通用对话框1.文件名)

子程序名返回值类型公开备 注
_清空图片_被选择  
当前图片框名称.图片 = {  }
子程序名返回值类型公开备 注
_删除图片_被选择 删除图片框
当前图片框名称.销毁 ()
子程序名返回值类型公开备 注
_取消返回_被选择  
返回 ()
子程序名返回值类型公开备 注
_外形框1_鼠标右键被按下逻辑型 添加菜单【正常】
参数名类 型参考可空数组备 注
横向位置整数型
纵向位置整数型
功能键状态整数型
外形框1.弹出菜单 (外形框菜单, , )
' 外形框 = 取事件组件 ()
' 外形框.弹出菜单 (外形框菜单, , )
子程序名返回值类型公开备 注
_加入图片框_被选择  
变量名类 型静态数组备 注
图片框图片框 
拖放对象拖放对象 
复制窗口组件 (图片框1, 图片框)
复制窗口组件 (拖放对象1, 拖放对象)
加入成员 (图片框数组, 图片框)
拖放对象.注册拖放控件 (图片框.取窗口句柄 ())
拖放对象.标记 = 到文本 (取数组成员数 (图片框数组))
图片框.可视 = 真
图片框.顶边 = 起始
' 起始 = 图片框.顶边 + 图片框.高度
起始 = 图片框.顶边 + 5
图片框.左边 = 外形框1.左边
子程序名返回值类型公开备 注
_加入编辑框_被选择  
变量名类 型静态数组备 注
编辑框编辑框 
复制窗口组件 (编辑框1, 编辑框)
编辑框.可视 = 真
编辑框.内容 = “你好”
编辑框.顶边 = 起始
起始 = 编辑框.顶边 + 编辑框.高度
' 编辑框.顶边 = 外形框1.顶边
编辑框.左边 = 外形框1.左边
子程序名返回值类型公开备 注
_编辑框1_鼠标右键被按下逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型
纵向位置整数型
功能键状态整数型
当前编辑框 = 取事件组件 ()
当前编辑框.弹出菜单 (编辑框菜单, , )
子程序名返回值类型公开备 注
_删除编辑框_被选择  
如果 (当前编辑框 = 编辑框1)
当前编辑框.可视 = 假
当前编辑框.可视 = 真
编辑框1.左边 = 300000
编辑框1.顶边 = 300000
当前编辑框.销毁 ()

子程序名返回值类型公开备 注
_拖放对象1_得到文件  
参数名类 型参考可空数组备 注
接收到的文件路径文本型
变量名类 型静态数组备 注
拖放对象拖放对象 
拖放对象 = 取事件组件 ()
图片框数组 [到整数 (拖放对象.标记)].图片 = 读入文件 (接收到的文件路径)
调试输出 (接收到的文件路径)
为什么通过在外形框上右键添加的图片框和编辑框无法打印出来?求高手指点一下哪几处需要如何修改?现在是删除编辑框后 打印也会打印出来编辑框1不知道如何修改


i支持库列表   支持库注释   
shell操作系统界面功能支持库
edroptarget拖放支持库
spec特殊功能支持库



补充内容 (2026-2-3 21:09):
现在只有 通过“载入图片”按钮才能正常打印,而通过外形框右键菜单“加入图片框”和“加入编辑框”无法打印,以及删除编辑框1后也会打印chul.....


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值
结帖率:67% (2/3)

签到天数: 1 天

发表于 7 小时前 | 显示全部楼层   河北省石家庄市
你好,我来帮你分析一下问题:

**问题根源:**

1. **图片框无法打印的原因:**
   - 在 `_按钮_载入图片_被单击` 中,图片框加入的是 `生成的图片框数组`
   - 但在 `_加入图片框_被选择` 中,图片框加入的是 `图片框数组`
   - 打印时遍历的是 `生成的图片框数组`,所以右键添加的图片框不会被打印

2. **编辑框无法打印的原因:**
   - 右键添加的编辑框没有被记录到任何数组
   - 打印代码直接使用 `编辑框1` 的属性,而不是遍历所有编辑框

3. **删除编辑框1后仍打印的原因:**
   - 代码直接引用 `编辑框1`,即使删除了也会尝试打印

**解决方案:**

1. 统一使用同一个数组,把 `_加入图片框_被选择` 中的:
   `加入成员 (图片框数组, 图片框)`
   改为:
   `加入成员 (生成的图片框数组, 图片框)`
   并且要给图片框设置标记(打印ID)

2. 创建一个 `生成的编辑框数组`,在添加编辑框时加入数组,打印时遍历这个数组

3. 打印编辑框前先判断是否可视:
   `如果真 (编辑框1.可视 = 真)`

希望对你有帮助!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表