做ACTIVEfORM当然常有这样或那样的不令人满意的地方。
这算不得什么BUG。

解决方案 »

  1.   

    难道各位没试过吗?我可以告诉大家delphi 4 、c++ Builder 5 做出来的Active Form 都没问题,只是delphi 5的问题。这个问题确实是delphi 5 中的一个bug,但delphi 5 提供的pack竞然没有修正此问题。
    经过向borland 求助,现在我已经知道如何解决此问题。修改 axctrls 单元中SetObjectRects 函数:
    function TActiveXControl.SetObjectRects(const rcPosRect: TRect;
      const rcClipRect: TRect): HResult;
    var
      WinRect: TRect;
    begin
      try
        IntersectRect(WinRect, rcPosRect, rcClipRect);
        // Begin Fix Bug
        WinRect := Bounds(rcPosRect.left,
          rcPosRect.Top,
          // Begin My Modification
          rcPosRect.Right - rcPosRect.Left,
          rcPosRect.Bottom - rcPosRect.Top);
          // End My Modification
        // End Fix Bug
        FWinControl.BoundsRect := WinRect;
        Result := S_OK;
      except
        Result := HandleException;
      end;
    end;