Mega Code Archive

 
Categories / Delphi / Activex OLE
 

How to fix the incorrect painting of an activex control, which occurs when a web

How to fix the incorrect painting of an ActiveX control, which occurs when a web page is scrolled Answer: In Delphi 4, when an ActiveForm is larger than the browser window the control is on top of IE's scroll bars. In Delphi 5 they changed the code to fix this but didn't get it quite right resulting in the painting problem when scrolling. You need to edit the Delphi 5 AxCtrls unit as follows: function TActiveXControl.SetObjectRects(const rcPosRect: TRect; const rcClipRect: TRect): HResult; var WinRect: TRect; begin try IntersectRect(WinRect, rcPosRect, rcClipRect); {BEGIN FIX} WinRect := Bounds(rcPosRect.left, rcPosRect.Top, WinRect.Right - WinRect.Left + rcClipRect.Left - rcPosRect.Left, WinRect.Bottom - WinRect.Top + rcClipRect.Top - rcPosRect.Top); {END FIX} FWinControl.BoundsRect := WinRect; Result := S_OK; except Result := HandleException; end; end;