问题标签 [redo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
121 浏览

c++ - 撤消后触发重做

我正在尝试使其仅在使用撤消后才能看到重做。我似乎无法让它工作。我知道我的信号和插槽有问题,我只是不知道如何让它工作。

这是撤消和重做信号槽的代码:

0 投票
1 回答
1516 浏览

database - Oracle 是否使用窃取/不强制方法?

我已经在谷歌上搜索了他的时间,但我找不到任何关于此的信息。它到处都说窃取/不强制是数据库系统最常见的方法,但没有证据我不能确定。

0 投票
2 回答
721 浏览

objective-c - FirstResponder 缺少重做:

为什么我在 InterfaceBuilder 文件中的 FirstResponder 缺少redo:连接(在Received Actions列表中)?undo:存在,但redo:不存在。我该如何解决?

0 投票
4 回答
2319 浏览

java - 替换(不更改)对象时Java自动更新所有引用?

所以我有一个我自己类的对象的 ArrayList:

现在说我有一个变量来保存列表中的这些对象之一。现在我知道如果我更改该对象(例如在该对象上设置一个字段),这会更改保存对象本身的内存,因此两个引用(保存列表中对象的变量和内部数组变量)仍然相同,并且两者仍然显示给相同的,现在修改的对象。正常行为!

但我也希望当我替换变量指向的列表中的对象时也是如此。那是我做的时候

...在这种情况下,我还希望我的变量自动引用这个新实例。实现这种行为的最简单方法是什么?

这就是为什么我需要这个:

简而言之,我有一组类可以处理对 ArrayList 所做的更改的撤消/重做(我没有扩展,这无论如何都不能解决问题?)。这些类被称为

所有类都有方法 undo() 和 redo()。

描述示例(如果需要,代码在最后):

假设我想将一个项目添加到列表中:我执行 new Add(myObject),然后我想修改列表中的项目,因此我执行 new Modify(myObject),之后它创建对象状态的 DeepCopy 作为备份,然后我更改对象本身(在完成对 new Modify(..) 的调用之后)。然后我在 Modify 对象上执行 undo() 所以它确实 list.set(somePos, previousDeepCopy) (因此这篇文章,从本质上讲,deepcopy 是一个新的实例,它把事情搞砸了!!!)....

所以你可以想象这个 list.set 会带来一些问题。对被替换对象的任何引用都将消失。因此,如果它总是替换对这样的对象的引用,我将无法有效地使用这样的列表,因此我的撤消管理器注定会以这种方式失败。

那么我该如何应对这些设计缺陷呢?欢迎任何建议。


一些代码:

0 投票
1 回答
377 浏览

wpf - 使用命令模式和用于撤消/重做的 ICommand 跟踪参数。存储多个命令?

我一直在研究一个涉及移动许多形状的 WPF 应用程序。它主要是 MVVM 并且严重依赖命令。直到最近我才担心撤消/重做。我认为这不会太难,因为我的大部分更改都涉及继承实现 ICommand 的基类 CommandBase 的命令。

到目前为止,我已经添加了另一个名为 IUndoCommand 的接口,它使用 ICommand。我添加了一个 Undo 方法,该方法将在调用 undo 时执行所需的操作。

我将为 Undo 和 Redo 使用堆栈,但我遇到了 Execute/Undo 方法的参数问题。有没有合适的方法来存储这些对象类型的参数?是否建议向 IUndoCommand 添加字段/方法?如果是这样,我应该在 Execute 方法或构造函数中设置它(如果我可以的话。)

如果不是,我应该将它作为堆栈中的自己的对象传递吗?

其次,(尽管这可能是它自己的问题)是否有更好的数据结构来跟踪多个命令?我目前有一个循环,它运行多个命令来移动多个选定的形状,并希望允许一个撤消来撤消它们。我想我可以将它自己转换为命令并将命令传递给它,但我又是新手,宁愿做对。

感谢您的阅读,任何帮助将不胜感激。

资料来源:

代码项目 VisualStudioMagazine StackOverFlow

0 投票
2 回答
407 浏览

actionscript-3 - 绘图应用撤消和重做功能动作脚本3

谁能告诉我如何进行撤消和重做功能?所以这是我当前的动作脚本。我不知道该怎么做,我在一些网站上看到了一些例子,动作脚本很长,无法理解。请展示一个简单的方法,我可以使这项工作..

对不起语法不好...

0 投票
1 回答
758 浏览

actionscript-3 - Action script 3 绘图应用程序撤消和重做功能

谁能告诉我如何进行撤消和重做功能?所以这是我当前的动作脚本。我不知道该怎么做,我在一些网站上看到了一些例子,动作脚本很长,无法理解。请展示一个简单的方法,我可以使这项工作..

对不起语法不好...

0 投票
2 回答
524 浏览

prolog - 选择重做直到失败,为什么?

我有以下功能:

我通过以下方式使用 trace on 调用它:

我不明白为什么在上面的跟踪中调用了重做。不应该选择“工作”,因此调用的下一行是

有人可以在这里帮助解释重做的外观吗?先感谢您。

0 投票
0 回答
472 浏览

java - 如何撤消/重做

我需要为下面的复杂对象编写撤消/重做功能。

我已经开发了这个代码。

它适用于简单的 String 或 Integer 值,但不适用于复杂的对象。它似乎包含一个引用而不是那个对象。有什么方法可以使它工作或使撤消/重做功能更容易。

0 投票
3 回答
7852 浏览

canvas - 破坏画布

我正在尝试完成撤消/重做。我正在使用 loadFromJSON(...) 从存储在数组中的画布状态重新构建画布。基本上,我的想法是破坏现有的画布并重新构建画布。这是我的代码。

此代码在现有画布之上添加另一个画布。但是,我需要一种方法来销毁画布并从我的 JSON 数据构建全新的画布(用新画布替换旧画布)。

请告知是否有可能或我有任何其他选择。