说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

ActiveForm在IE中不停的重画?请问为什么?

编辑:说三道四文库 发布时间:2018-01-23 09:41
HTML文档下载 WORD文档下载 PDF文档下载
你好!我写了一个activeform,上面放了几个panel,什么操作也没有,为什么只是稍微拖动ie,
form的重画就非常严重,activeform的画面都变形了!我想自己处理OnPaint,
但ActiveForm的OnPaint的事件并没有被触发?
请教各位该如何解决呢?我觉得重画操作不应该有我作,而是系统自己会处理。
这是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下,将原有文件覆盖即可.
楼上的大侠很牛啊!呵呵,虽然还没有试验,但是佩服啊!
其实上面的代码就是 Delphi 3/4 版本的 axctrls.pas 中的。所以用 Delphi 3/4 开发 ActiveXForm 是没有问题的。但是 Delphi 5 的 axctrls.pas 做了改动,反而出现了问题。所以只要照着 Delphi 3/4 版本的 axctrls.pas 改动一下这个位置就可以了。
这是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下,将原有文件覆盖即可. 
我其初也有问题,现在解决了(按上面说的改一下就OK)
请问怎样调试ACTIVEFORM,应不是发布完再调试吧?
编程、创业、开源感悟——SDCC 2013讲师云风专访 原生广告:移动推广的热门新宠 隐私之战:金山手机毒霸宣布开放安全检测平台 世界人民的头上有张监控大网——Xkeyscore 美国“监控门”情报收集系统 X-Keyscore 技术揭秘 关于空记录的问题,急用,拜托大家帮帮忙!谢谢 我的机子WORD不能用了,程序错误。 关于"透明窗体"的研究和再讨论 Apache POI 问题! 急! 如何编写一个程序可以把fox数据库中的数据导入sql sever数据库中呢? 请教各位高手一个问题!关于http代理和socks代理的问题! 如何更改从网上down下来的手机游戏的图片 WebBrowser控件问题 Session问题 已知某一次函数自变量x的取值范围是0 一个圆经过点P(2,1)和直线X-Y=1相切,并且 英语翻译标题:Alive and kickingT 英语翻译港铁死火3小时 议员倡惩罚制每日客量逾38 英语翻译不要是用在线翻译软件弄的,要自己翻译Kel 为什么说南北战争是美国历史上的第二次资产阶级革命? 英语翻译Some 145 tons of lemo 英语翻译BP Solar Completes Ma 为什么说南北战争是美国历史上第二次资产阶级革命?说 印度古吉拉特邦建世界最大雕像 暗贬尼俄专家称俄罗斯人无法仅凭工资购买一套外交部:望澳方重视对华关系 视中国发律师称斯诺登可在俄境内就德国遭美监听中方对目前阶段销毁叙化武相关决定执行餐馆生意不好时,该如何“逆转”?看众饮水电器闪耀AWE2016拼颜值也拼大脑:那些演艺圈的名校生底特律已没落,內达华州却站起来撸了!科比拉塞尔缺阵湖人遭4连败 海沃德2黑暗狂少不灭之旅(正式版)龙鹰黑榜(修改版)龙战星野西藏和平解放纪念碑旅游布达拉宫广场旅游念青唐古拉山旅游唐古拉山口旅游沱沱河旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘