你取得剪贴板的内容后修改成你要的内容然后设置会剪贴板不就好了,不用直接给Edit赋值

解决方案 »

  1.   

    获取剪贴板的内容,修改内容,把修改的内容写进剪贴板,不要给Edit赋值,正常粘贴就不会有重复粘贴了
    相应的,剪贴板里的内容就是修改后的内容了
      

  2.   

    也可以处理WM_PASTE消息,例如
    type
      TForm1 = class(TForm)
      edit1:TEdit;
      ....
      procedure NewWndProc(var m:TMessage); 
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
       // 子类化edit1
       edit1.WindowProc:= NewWndProc;
    end; procedure TForm1.NewWndProc(var m: TMessage);
    begin
      // 拦截粘贴消息
      if m.Msg = WM_PASTE then
      begin
        // 这里设置 edit1 的内容
      end
      else // 过滤掉粘贴消息,不往下传递
        edit1.Dispatch(m);
    end;
      

  3.   


    直接调用clipBoard.AsText就行