delphi – 如何拦截(检测)粘贴命令到TMemo?

前端之家收集整理的这篇文章主要介绍了delphi – 如何拦截(检测)粘贴命令到TMemo?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在将文本粘贴到TMemo之前捕获粘贴命令并更改剪贴板的文本,但是,粘贴后,剪贴板中的文本必须与更改之前相同?

例如,剪贴板上有文本’简单问题’,TMemo中的文字是’СимплeQуeстиoн’,之后剪贴板中的文字就像更改之前的’简单问题’.

解决方法

派生一个从’TMemo’下降的新控件来拦截WM_PASTE消息:
type
  TPastelessMemo = class(TMemo)
  protected
    procedure WMPaste(var Message: TWMPaste); message WM_PASTE;
  end;

uses
  clipbrd;

procedure TPastelessMemo.WMPaste(var Message: TWMPaste);
var
  SaveClipboard: string;
begin
  SaveClipboard := Clipboard.AsText;
  Clipboard.AsText := 'Simple Question';
  inherited;
  Clipboard.AsText := SaveClipboard;
end;

如果您想要禁止任何粘贴操作,请清空WMPaste处理程序.

猜你在找的Delphi相关文章