当前位置: 首页 > 面试题库 >

如何在文本编辑器中设计撤消和重做?

陶烨赫
2023-03-14
问题内容

我的项目的一部分是编写一个文本编辑器,该文本编辑器用于键入一些规则,编译我的应用程序并运行它。编写编译器是结束并发布beta版。在最终版本中,我们必须将撤消和重做添加到文本编辑器中。我使用一个文件,并定期将其保存为文本编辑器。如何设计文本编辑器的撤消和重做?文件的持久性结构发生了什么变化?


问题答案:

您可以将操作建模为命令,并保存在两个堆栈中。一个用于撤消,另一个用于重做。您可以编写命令来创建更多高级命令,例如,当您要撤消宏操作时;或者如果您想在一个动作中将单个单词或短语的各个按键组合在一起。

编辑器中的每个操作(或重做操作)都会生成一个新的撤消命令,该命令将进入撤消堆栈(并清除重做堆栈)。每个撤消操作都会生成进入重做堆栈的相应重做命令。

如derekerdmann的评论中所述,您还可以将撤消和重做命令组合为一种类型的命令,该命令知道如何撤消和重做其动作。



 类似资料:
  • 我有一个编辑文本框,我有调用ontouchlistener,它显示一个自定义对话框,当我单击setdate按钮时,日期选择器上的日期应该设置在编辑文本上,并且对话框应该得到Dississe。但是我不知道如何从日期选择器中获取日期,以及如何在编辑文本框中设置。我在date.init(year,monthOfYear,dayOfMonth,new MyOnDateChangedListener())中

  • 第四章 文本编辑器的设计(二) 4.4.2查找对话框部件 查找对话框部件为应用程序提供查找对话框, 用户可使用查找对话框在文本文件中查找字符串。 可用Execult方法显示查找对话框,如图4.8。应用程序要查找的字符放到FindText属性中。Options 属性可决定查找对话框中有哪些选项。例如, 用户可选择是否显示匹配检查框。Options的常用选项如表4.2所示。 如果用户在对话框中输入字符

  • 第四章 文本编辑器的设计(一) 本章介绍多文本界面(MDI)、多页面界面(MPI)技术;VCL库中TMemo,TEdit 控件以及有关文本编辑的常用对话框的使用。我们开发的MPIEdit.dpr是一个文本编辑的实用程序,可实现如下功能: MDI的编辑环境 MPI的编辑环境 创建打开、编辑、保存文件 查找、替换文件中指定的字符串 复制、粘贴、剪切字符串 设置文件字体大小 打印文件 本章将通过MPIE

  • 我试图在EditText中设置文本,但它说: 我的代码如下: 不要说用< code>setText,因为我用的是kotlin,不是Java。

  • 我正在android studio中使用java开发和应用程序,希望在RecyclerView函数中编辑文本。我该怎么做?