undo - 如何在没有状态的情况下进行撤消/重做?
问题描述
我正在开发一个使用 KSP 的示例库乐器,我怀疑这里的任何人都知道它是一种非常基本且有限的语言。
我试图弄清楚如何实现一个撤消/重做系统来与我的 UI 交互。我已经有一个预设系统设置,它使用我为每组 UI 元素声明的“last_value”数组。这很好用,因为它只需要记住每个 UI 控件收到的最后一个活动值更改。
因此,在保存和加载预设时,我只需将所有当前 UI 值保存到主预设数组,或者加载并应用保存的数据文件数组中的所有值。但是我将如何考虑所有已进行的编辑历史?仅将值保存到第 x 个最大撤消步骤是一回事,但我还必须记住哪个 UI 控件以哪个顺序触发?
我是一个初学者,不知道任何其他语言,所以我的脑袋现在正在冒烟,试图设想如何真正做到这一点。
我很感激任何提示和建议!
解决方案
推荐阅读
- php - 根据 2 个日期获取每月的周数
- windows - 如何在 Windows 中获取 I420 或 RGB24 格式的相机流?
- javascript - 我将如何使用'require'在队列文件中使用这个链表文件?
- java - 错误 java.net.SocketException:连接重置
- postgresql - Postgresql 和 dblink:我如何进行 UPDATE FROM?
- math - 求解给定一个分量和方向的向量,表示为单位向量
- javascript - 如何修复纯 JavaScript 滑块代码使其移动屏幕?
- ssl - Openerp 总是使用 nginx 访问 http 而不是 https
- javascript - 为 MaterialUI 生成随机网格的算法,其中行加起来最多为 3 列
- python - 如何以 jsend 格式从 django rest api 获得响应?