Delphi2007 pack3中Edit和Memo控件中没有右键了,无法选择复制和粘贴,是不是需要自定义复制和粘贴?如何定义?

解决方案 »

  1.   

    自定义是不是太麻烦?能不能调用系统自带的Popup右键弹出功能?
      

  2.   

    解决delphi2007 for win 和CB2007的TEdit等组件右键菜单没有的问题,只要修改源码Controls.pas中第7319行改为if Result  < > 0 then Exit;
    ,并将修改后的Controls.pas拷贝到Lib目录就可以了。delphi for .net暂时无办法解决。procedure TWinControl.DefaultHandler(var Message);
    begin
      if FHandle  < > 0 then
      begin
        with TMessage(Message) do
        begin
          if (Msg = WM_CONTEXTMENU) and (Parent  < > nil) then
          begin
            Result := Parent.Perform(Msg, WParam, LParam);
    //        Exit;//将此行的Exit改为if Result  < > 0 then Exit;
            if Result  < > 0 then Exit;
          end; 
      

  3.   

    lzf1010 
    我改了,可是没有用。
    D:\Program Files\CnPack\CnWizards\PSDecl
    D:\Program Files\CodeGear\RAD Studio\5.0\source\Win32\vcl
    这两个目录下都有Controls.pas
    我改哪个都不行。
    拷贝到Lib目录,D:\Program Files\Borland\BDS\4.0这个目录下有Lib,可是拷过去也没有用。
      

  4.   

    俺该了的,一切正常,呵呵,LS的难道是RPWT?
      

  5.   

    这个问题本来是没有的,是为了解决一个窗口控制嵌套层次过多的情况下上下文菜单弹出迟钝的问题,
    见 http://qc.codegear.com/wc/qcmain.aspx?d=42752
    CodeGear在没有完整测试的情况下就采用了提交者Peter Below的修正办法,将if Result   <  > 0 then Exit;这句改成了Exit;
    结果就造成了这个默认的上下文菜单弹不出来的新BUG。
    最简单的修正方法就是改回原样,只是QC 42752的问题没有解决(一般情况下感觉不到)。
    这个问题应该是Andreas Hausladen最早发现的,他有一个补丁,在:
    http://andy.jgknet.de/blog/archives/69-Inofficial-RAD-Studio-patch.html还有,jiaxianglei你应该把改过的.pas/.dcu放在D:\Program Files\CodeGear\RAD Studio\5.0\Lib下呀,
    D:\Program Files\Borland\BDS\4.0\Lib是BDS 2006的。
      

  6.   

    DelphiGuy 你太伟大的,这个问题我找了很久了,在没答案我就要放弃2007刷回2006了。
    在搜到你的答案后,我专程注册进了这个论坛,给你道声:谢谢!!!