DXScene4.42在XE2 Update3中的Bug修复

Lewolf 2012-07-27 09:06:38
DXScene4.42控件在XE2 Update3中CheckBox和RedioButton都出现不能显示IsChecked的情况,经过分析其代码,原因出在XE2的RTTI和之前版本有所不同,GetPropInfo方法获取属性信息的时候,不兼容以前的所有情况。需要修改一下,童鞋们可以打开“dx_vgcore.pas”找到 procedure TvxColorAnimation.ProcessAnimation;方法,将下面代码:

{ is string prop }

if GetPropInfo(FInstance.ClassInfo, FPath, [tkString, tkLString, tkWString{$IFDEF FPC},tkAString{$ENDIF}{$IFDEF KS_COMPILER11_UP}, tkUString{$ENDIF}]) <> nil then
SetStrProp(FInstance, FPath, vgColorToStr(vgInterpolateColor(FStartColor, FStopColor, NormalizedTime)));
{ is int prop }
if GetPropInfo(FInstance.ClassInfo, FPath, [tkInteger]) <> nil then
SetOrdProp(FInstance, FPath, vgInterpolateColor(FStartColor, FStopColor, NormalizedTime));


修改成:

SetStrProp(FInstance, FPath, vgColorToStr(vgInterpolateColor(FStartColor, FStopColor, NormalizedTime)));

即可。
...全文
129 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2012-07-27
  • 打赏
  • 举报
回复
Lewolf大牛来了。我现在很少用三方控件了。
dataxdata 2012-07-27
  • 打赏
  • 举报
回复
谢谢分享,虽然没用到这个控件,不过以后也可能遇到类似情况
bcbsoft 2012-07-27
  • 打赏
  • 举报
回复
谢谢分享!

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧