首页 新闻 会员 周边 捐助

Delphi 请问如何让使用代码设置Memo的文本 使用Ctrl+Z撤消有效

0
悬赏园豆:5 [已解决问题] 解决于 2013-10-16 20:17

delphi Memo的撤销问题
当手动修改Memo里面的文本时使用Ctrl+Z可以撤销
当使用代码设置Memo文本时如 Memo1.text:='aaaaa';设置后 Ctrl+Z 撤销就无效了
请问如何让使用代码设置的文本 Ctrl+Z撤销有效

问题补充:

问题已经解决了

http://zhidao.baidu.com/question/303948287703292044.html?quesup2&oldq=1

XE2011的主页 XE2011 | 初学一级 | 园豆:193
提问于:2013-10-15 17:34
< >
分享
最佳答案
1

可以使用发替换内容的消息来达到可以撤销的目的

测试代码如下:

var
  nPC: PChar;
begin
  Memo1.SelectAll; {选择所有内容}

  GetMem(nPC, 5);
  StrPCopy(nPC, '11111');
  SendMessage(Memo1.Handle, EM_REPLACESEL, 1, Integer(nPC)); {替换所选内容, WParam为1代表可以撤销, 0为不可撤销}
  FreeMem(nPC, 5);
end;
收获园豆:5
黑暗煎饼果子 | 菜鸟二级 |园豆:354 | 2013-10-16 09:53
其他回答(1)
0

建立1个字符串副本 撤销的时候加载这个副本 MEMO这个说做1个副本就足够了 反正只需要撤销一步

XE2011 | 园豆:193 (初学一级) | 2013-10-15 17:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册