开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 1444|回复: 2
收起左侧

[精币悬赏] 急急急!请求大神现身啊,很多人都搞不定这个难题

[复制链接]
结帖率:0% (0/4)
发表于 2018-3-20 00:18:23 | 显示全部楼层 |阅读模式   四川省达州市
5精币
需解决的问题如下:
1.标签1复制N个后,点击程序中的撤消按钮时,程序是从第一个复制件开始删除的.而我需要的是:复制N个后,当选中其中一个复制的组件时,点击撤消按钮可删除(或按DEL键),或者说,我想点击撤消按钮时,从最后一个复制件开始删除.即倒过来删除.求大神解决哟,最好有源码,谢谢了.
代码如下,请帮我看看下.
.版本 2
.程序集 窗口程序集1
.程序集变量 当前标签, 标签, , , 记录当前热点标签
.程序集变量 当前方块, 标签, , , 记录当前热点方块
.程序集变量 到位, 逻辑型
.程序集变量 复制组件标记1, 整数型, , , 第1个产品
.程序集变量 复制组件标记2, 整数型, , , 第2个产品
.程序集变量 a, 整数型, , , 第1个产品
.程序集变量 b, 整数型, , , 第2个产品
.子程序 __启动窗口_创建完毕
事件转移 (标签2, 标签1)  ' 将标签2的事件转移到标签1,方便统一处理
事件转移 (左中, 左上)  ' 将所有方法的事件全部转移支“左上”,方便统一处理
事件转移 (左下, 左上)
事件转移 (中中, 左上)
事件转移 (中下, 左上)
事件转移 (右上, 左上)
事件转移 (右中, 左上)
事件转移 (右下, 左上)
复制组件标记1 = 1  ' 第1个产品
复制组件标记2 = 2  ' 第2个产品
.子程序 _标签1_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
当前标签 = 取事件组件 ()  ' 将事件标签存入变量,方便统一处理相关事件
当前标签.调整层次 ()  ' 移动最顶层
当前标签.发送信息 (161, 2, 0)  ' 移动控件
到位 = 假  ' 要重新调整方块位置
显示移动块 ()

.子程序 _标签1_鼠标位置被移动, 逻辑型
.参数 横向位置, 整数型, 可空
.参数 纵向位置, 整数型, 可空
.参数 功能键状态, 整数型, 可空
显示移动块 ()  ' 移动方块至新位置显示移动块
.子程序 显示移动块
.局部变量 标签中心, 整数型
.局部变量 方块中心, 整数型, , , 使用此变量主要是方法更清楚的了解计算方法,在实际使用中可以不用变量
.如果真 (是否已创建 (当前标签) = 假)  ' 没有事件组件,直接返回
    返回 ()
.如果真结束
.如果真 (到位)  ' 已经调整过位置了,直接返回
    返回 ()
.如果真结束
左上.移动 (当前标签.左边 - 左上.宽度, 当前标签.顶边 - 左上.高度, , )
左上.可视 = 真
左上.调整层次 ()
.判断开始 (当前标签.高度 ≥ 2)  ' 高度小于10则不显示“左中”和“右中”方块
    标签中心 = 当前标签.高度 ÷ 2
    方块中心 = 左中.高度 ÷ 2
    左中.移动 (当前标签.左边 - 左中.宽度, 当前标签.顶边 + 标签中心 - 方块中心, , )
    左中.可视 = 真
    左中.调整层次 ()
    右中.移动 (当前标签.左边 + 当前标签.宽度, 左中.顶边, , )
    右中.可视 = 真
    右中.调整层次 ()
.默认
    连续赋值 (假, 左中.可视, 右中.可视)
.判断结束
左下.移动 (左上.左边, 当前标签.顶边 + 当前标签.高度, , )
左下.可视 = 真
左下.调整层次 ()
.判断开始 (当前标签.宽度 ≥ 2)  ' 宽度小于10则不显示“中中”和“中下”方块
    标签中心 = 当前标签.宽度 ÷ 2
    方块中心 = 中中.宽度 ÷ 2
    中中.移动 (当前标签.左边 + 标签中心 - 方块中心, 当前标签.顶边 - 中中.高度, , )
    中中.可视 = 真
    中中.调整层次 ()
    中下.移动 (中中.左边, 当前标签.顶边 + 当前标签.高度, , )
    中下.可视 = 真
    中下.调整层次 ()
.默认
    连续赋值 (假, 中中.可视, 中下.可视)
.判断结束
右上.移动 (当前标签.左边 + 当前标签.宽度, 当前标签.顶边 - 右上.高度, , )
右上.可视 = 真
右上.调整层次 ()
右下.移动 (右上.左边, 当前标签.顶边 + 当前标签.高度, , )
右下.可视 = 真
右下.调整层次 ()
到位 = 真
.子程序 __启动窗口_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
连续赋值 (假, 左上.可视, 左中.可视, 左下.可视, 中中.可视, 中下.可视, 右上.可视, 右中.可视, 右下.可视)  ' 隐藏方块
.子程序 _左上_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 消息值, 整数型
当前方块 = 取事件组件 ()
.判断开始 (当前方块 = 左上)
    消息值 = 13
.判断 (当前方块 = 左中)
    消息值 = 10
.判断 (当前方块 = 左下)
    消息值 = 16
.判断 (当前方块 = 中中)
    消息值 = 12
.判断 (当前方块 = 中下)
    消息值 = 15
.判断 (当前方块 = 右上)
    消息值 = 14
.判断 (当前方块 = 右中)
    消息值 = 11
.判断 (当前方块 = 右下)
    消息值 = 17
.默认
.判断结束
当前标签.发送信息 (161, 消息值, 0)  ' 调整控件大小
到位 = 假  ' 要重新调整方块位置
显示移动块 ()

.子程序 __启动窗口_按下某键, 逻辑型
.参数 键代码, 整数型
.参数 功能键状态, 整数型
.如果真 (是否已创建 (当前标签) = 假)
    返回 ()
.如果真结束
.如果真 (左上.可视 = 假)  ' 说明当前未选中任何控件
    返回 ()
.如果真结束
.如果真 (键代码 = #左光标键)
    .判断开始 (位与 (功能键状态, #Shift键状态) ≠ 0)  ' 说明按下了Shift键,要调整大小
        当前标签.移动 (, , 当前标签.宽度 - 1, )
    .默认
        当前标签.移动 (当前标签.左边 - 1, , , )
    .判断结束
    到位 = 假  ' 要更新方法位置
    显示移动块 ()
.如果真结束
.如果真 (键代码 = #右光标键)
    .判断开始 (位与 (功能键状态, #Shift键状态) ≠ 0)  ' 说明按下了Shift键,要调整大小
        当前标签.移动 (, , 当前标签.宽度 + 1, )
    .默认
        当前标签.移动 (当前标签.左边 + 1, , , )
    .判断结束
    到位 = 假  ' 要更新方法位置
    显示移动块 ()
.如果真结束
.如果真 (键代码 = #上光标键)
    .判断开始 (位与 (功能键状态, #Shift键状态) ≠ 0)  ' 说明按下了Shift键,要调整大小
        当前标签.移动 (, , , 当前标签.高度 - 1)
    .默认
        当前标签.移动 (, 当前标签.顶边 - 1, , )
    .判断结束
    到位 = 假  ' 要更新方法位置
    显示移动块 ()
.如果真结束
.如果真 (键代码 = #下光标键)
    .判断开始 (位与 (功能键状态, #Shift键状态) ≠ 0)  ' 说明按下了Shift键,要调整大小
        当前标签.移动 (, , , 当前标签.高度 + 1)
    .默认
        当前标签.移动 (, 当前标签.顶边 + 1, , )
    .判断结束
    到位 = 假  ' 要更新方法位置
    显示移动块 ()
.如果真结束

.子程序 _按钮1_被单击, , , 第1个产品增加
.局部变量 第1个产品, 标签
复制窗口组件 (标签1, 第1个产品)
第1个产品.移动 (1000, 60, , )
第1个产品.可视 = 真
第1个产品.标记 = 到文本 (复制组件标记1)
a = a + 1
标签16.底图 = 标签1.底图
标签17.标题 = 到文本 (编辑框1.内容)
编辑框12.内容 = 到文本 (a)
.子程序 _按钮2_被单击, , , 第1个产品删除键
.局部变量 第1个产品删除, 标签

.如果真 (编辑框12.内容 = “0”)
    信息框 (“产品数量已经为0了,无法减少产品”, 0, , )
    标签16.底图 = {  }
    标签17.标题 = “”
    返回 ()
.如果真结束
a = a - 1
第1个产品删除 = 取标记组件 (1)
第1个产品删除.销毁 ()
编辑框12.内容 = 到文本 (a)
.子程序 _按钮3_被单击, , , 第2个产品增加
.局部变量 第2个产品, 标签
复制窗口组件 (标签2, 第2个产品)
第2个产品.移动 (1020, 60, , )
第2个产品.可视 = 真
第2个产品.标记 = 到文本 (复制组件标记2)
b = b + 1
编辑框15.内容 = 到文本 (b)
标签19.底图 = 标签2.底图
标签18.标题 = 到文本 (编辑框2.内容)
.子程序 _按钮4_被单击, , , 第2个产品删除
.局部变量 第2个产品删除, 标签
.如果真 (编辑框15.内容 = “0”)
    信息框 (“产品数量已经为0了,无法减少产品”, 0, , )
    标签19.底图 = {  }
    标签18.标题 = “”
    返回 ()
.如果真结束
第2个产品删除 = 取标记组件 (2)
第2个产品删除.销毁 ()
b = b - 1
编辑框15.内容 = 到文本 (b)

头像被屏蔽
结帖率:82% (18/22)
发表于 2018-3-20 01:49:23 | 显示全部楼层   广东省湛江市
不难 我刚几分钟弄出来了   本来想发给你的  就是标签不爽  没有接受按键消息的事件  用窗口的事件有bug  当选中的同时按下删除键 不能正常删除  一气之下直接关掉了   还是用动画框吧。      要这个思路:  吧复制的组件放在数组里,加上标记 , 标记值 , 用循环次数 ,取事件组件 ()  就不用判断了  直接当索引用
回复

使用道具 举报

发表于 2018-3-20 13:03:07 | 显示全部楼层   山西省太原市
把 复制的组件放在数组里,加上标记 , 标记值 , 用循环次数 ,取事件组件 ()  就不用判断了  直接当索引
回复

使用道具 举报

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

本版积分规则 致发广告者

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

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

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