无论用NT4,win2000,win98,IE4,IE5都是这样。
当Active Form 的上界或左界碰到IE的边框时就会变花。Help Me!
我用Delphi 5 编译时会变花,Delphi 4不会。是为什么?

解决方案 »

  1.   

    我刚找到答案
    这是delphi的一个bug将Delphi5安装目录下Borland\Delphi5\Source\Vcl\axctrls.pas文件考出,放在一个临时目录中。用Delphi新建一个工程,保存在该临时目录中,在此工程中加入axctrls.pas(用Project菜单下的Add to Project...), 在Component List中,打开TActiveXControl下的Protected节点,双击SetObjectRects,则看到下面的代码function TActiveXControl.SetObjectRects(const rcPosRect: TRect;
      const rcClipRect: TRect): HResult;
    var
      WinRect: TRect;
    begin
      try
        IntersectRect(WinRect, rcPosRect, rcClipRect);
        FWinControl.BoundsRect := rcPosRect;
        Result := S_OK;
      except
        Result := HandleException;
      end;
    end;将FWinControl.BoundsRect := WinRect; 中的 WinRect 换成 rcPosRect, 然后运行工程编译,将axctrls.dcu 文件考到Borland\Delphi5\lib及Borland\Delphi5\lib\Debug下,将原有文件覆盖即可.  
      

  2.   

    这是delphi5的一个bug,最乘客单的方法,你只要到delphi的主页上下一个axctrls.dcu文件126K,覆盖delphi目录下原来的文件即可。。