这是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下,将原有文件覆盖即可. 

解决方案 »

  1.   

    最简单的方法,把AVTIVEFORM的界面做的比IE的显示窗口小一些~~
      

  2.   

    改用delphi6,bug已经改正了,不会出现activeform的花屏问题了
      

  3.   

    我再up一下,dana跑到哪里去了,有谁知道?
      

  4.   

    我明白是怎么回事了,上面这么改是可以的,但是在Project Options的Packages里不能选择
    build with runtime packages, 这样在web deployment options里也不用选择Deploy Required packages.重新编译发布就可以了!谢谢各位!
      

  5.   

    其实这是DELPHI5的一个BUG,你只要下一个新的axctrls.dcu文件,拷贝并替换原来的文件,一切就OK了,新的文件大小126K。
      

  6.   

    dana(dana) 的方法没有问题,因为我前两天刚刚解决过,方法是一样的。
      

  7.   

    要不然把握的axctrls.dcu文件发给你?
    只是最近邮件病毒很多,你可得小心了。