向高手请教!(内详)

songxin 2000-08-21 11:57:00
我现在做一个写日记的程序,文字处理部分用的是richtext控件,然后按时间将每天
的日记存放在.mdb的表中(数据类型是备注).我想添加一个像一般文字处理都有的"撤销
上次编辑操作"和"重做上次编辑操作"的功能.
注:由于使用的是richtext控件,richtext.text中的内容肯定是包含不同字体属性的字
符串(如第一段是红色的粗体字,第二段是蓝色的斜体字),所以不能简单的用一个string
类型的数组来处理.
我有一笨方法设置20个隐藏的richtext控件(数组),每次进行交换!
望高手指点一二!

...全文
189 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
songxin 2000-08-26
  • 打赏
  • 举报
回复
谢谢shines!在哪可以给你加分?
shines77 2000-08-24
  • 打赏
  • 举报
回复
其实用RichTextBox1.TextRTF 返回String就可以了。。。他包括颜色,字体等RTF信息^_^

不过建议你不要每一次改变都记录,要智能(以空格为标志),或者按时间记录。

其实EM_Undo后再EM_Undo即是EM_Redo了 :))

(我昨天发了没发上来!!)
shines77 2000-08-23
  • 打赏
  • 举报
回复
用RichTextBox1.TextRTF 返回String就可以了。。。他包括颜色,字体等RTF信息^_^

不过建议你不要每一次改变都记录,要智能(以空格为标志),或者按时间记录。

其实EM_Undo后再EM_Undo即是EM_Redo了 :))

请原谅,也许发了两遍
shines77 2000-08-23
  • 打赏
  • 举报
回复
用RichTextBox1.TextRTF 返回String就可以了。。。他包括颜色,字体等RTF信息^_^

不过建议你不要每一次改变都记录,要智能(以空格为标志),或者按时间记录。

其实EM_Undo后再EM_Undo即是EM_Redo了 :))
fs_windy 2000-08-22
  • 打赏
  • 举报
回复
尝试使用SendMessge中的消息EM_UNDO和EM_REDO。
Putao 2000-08-22
  • 打赏
  • 举报
回复
可以用string,只不过是rtf格式的string.
比如:\a1\...
--joft@126.com
Nicrosoft 2000-08-22
  • 打赏
  • 举报
回复
to fs_windy: 没有EM_Redo消息的。richedit 不支持redo的,undo也只支持一次.用20个控件数组实在不是好办法,richedit本身很占资源。用richedit没有很好的方法,还是算了吧,或者找其它第三方控件,这方面vcl控件倒很多,ocx就难说了,不过应该有吧
驹驹无敌 2000-08-22
  • 打赏
  • 举报
回复
建一个堆栈的数据结构,每次操作时将结果压入堆栈。UNDO时,就往外弹,REDO时就再压一次。
songxin 2000-08-22
  • 打赏
  • 举报
回复
请putao讲详细一些有关rtf格式的string!
谢谢!
iwin 2000-08-22
  • 打赏
  • 举报
回复
建立一个编辑操作记录表,将每一次改动内容的前后值都记下来。

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧