定义写了一个右键菜单,但是原来的系统右键菜单里的复制,粘贴功能没有了,怎么样在自己的右键菜单里把这些功能加回去

解决方案 »

  1.   

    添加一个复制,粘贴的ITEM下去就行啦。。
      

  2.   

    如果是文本框编辑框之类的可以用CopyToClipboard来实现复制,用PasteFromClipboard来实现粘贴。
      

  3.   

    >>,我就是要保留原来系统的功能又有自己的右健菜单功能
    将你自己的功能,加到系统菜单去就可
      

  4.   

    堂堂一个csdn难道没有人会吗?
      

  5.   

    要是成千上万个文本框你就要将相同的代码写成千上万次的话,要OOP做什么?
      

  6.   

    做个公共菜单,然后捕捉鼠标右键事件,在这个事件里判断是否是TEDIT控件,是的话就弹出这个菜单
      

  7.   

    (sender as tmemo).CopyToClipboard;
      

  8.   

    missing connection or connectionstring
      

  9.   

    放一个ActionList元件,打开编辑窗口,右键菜单选择New Standard ...,添加EditCut,EditCopy,EditPaste等,在你的弹出菜单加3个菜单项,Action属性分别选择就Ok.
      

  10.   

    我看楼主还是用ActionList吧.这样连代码都不用写
      

  11.   

    private
        procedure ClipboardChangeCBChain(var message: TMessage);message WM_CHANGECBCHAIN;
        procedure ClipboardChanged(var message: TMessage);message WM_DRAWCLIPBOARD;
      var
        hwndNextViewer:hWnd;
    procedure TFrmEdtChda.FormCreate(Sender: TObject);
    begin
        hwndNextViewer := SetClipboardViewer(handle);
    end;procedure TFrmEdtChda.ClipboardChanged(var message: TMessage);
    begin
      if Clipboard.HasFormat(CF_TEXT) then S := Clipboard.astext;
      if (hwndNextViewer <> NULL) then  with message do SendMessage(hwndNextViewer, Msg,wParam, lParam);
    end;procedure TFrmEdtChda.ClipboardChangeCBChain(var message: TMessage);
    begin
      with message do
      begin
        if WParam=hwndNextViewer then hwndNextViewer := LParam
        else if (hwndNextViewer <> NULL) then SendMessage(hwndNextViewer, Msg,wParam, lParam);
      end;
    end;
      

  12.   

    procedure TFrmEdtChda.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
        ChangeClipboardChain(handle, hwndNextViewer);
        SendMessage(hwndNextViewer,WM_CHANGECBCHAIN,Handle,hwndNextViewer);
    end;