|
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)
|
|