菲菲的家(ffhome.com)原创,转载请注明!
Raize Components是一组优秀的Delphi和C++builder的控件,6.0版全面支持Embarcadero RAD Studio XE2。为了达到全面支持XE2的目的,Raize公司对源代码进行了大量的改动,除支持Delphi 64bit编译外,对XE2新增的一些特性如VCL Style等也进行了支持。
刚刚到手,迫不及待安装试用,却发现了Raize Components 6.0存在的一点点瑕疵。
这个瑕疵就是TRzSizePanel组件在Align值为alTop或alBottom时,它的HotSpot自绘小箭头和点线存在问题。哈哈,有人说了,这算什么问题……这的确是个小小的问题,也许你根本用不上TRzSizePanel组件,也许你用TRzSizePanel组件时HotSpotVisible值设为false,但如果你一旦用到HotSpot,没箭头是真的不爽……
Align值为alLeft或alRight时就没有问题,见以下图片,红色框内的就是没有箭头的HotSpot。
我花时间看了一下源代码,找到了解决这个瑕疵的办法:
1、到Raize Components 6.0组件的安装目录找到Source文件夹【例如C:\Program Files (x86)\Raize\RC6\Source】,打开RzSplit.pas文件;
2、找到函数定义procedure TRzCustomSizePanel.DrawHotSpot( Highlight: Boolean );【大概是第4476行】
3、在这个函数体中有一句
R := DrawSides( Canvas, FHotSpotRect, HSFrameColor, HSFrameColor, sdAllSides );
在这句的上面增加以下两行代码:
with Canvas, FHotSpotRect do //ffhome
begin //ffhome
在函数结尾补上一个
end; //ffhome
保存。
4、将这个改动的文件编译。
你可以载入Source文件夹内的RaizeComponentsVcl.dpk编译RzSplit.pas的32bit和64bit,然后把RzSplit.dcu文件拷贝到Lib\RS-XE2下对应的32bit和64bit文件夹内;也可以使用Raize提供的“编译安装一体化批处理文件”完成这项工作,这个文件就在Source文件夹内,文件名是!Build_RC6.cmd。
打开!Build_RC6.cmd文件进行修改,英文好一点的就不要往下看了,自己按照提示就可以修改好了,英文不好的,我会提示你更改哪几项,具体要改的请根据你自己电脑实际更改。
①找到 rem goto InitComplete 行,把前面的rem去掉;
②找到 set SysPath32= ,等号后面的路径改为你自己电脑的路径,64位Windows应该是SysWOW64而不是System32;
③找到 set VCLVersion= ,等号后面填写版本,XE2是16;
④找到 set DCC32EXE= 和 set DCC64EXE= ,等号后面是DCC32.exe和DCC64.exe文件的路径,这两个文件都在bin目录下【例如C:\Program Files\Embarcadero\RAD Studio\9.0\Bin\】;
⑤看到以下行
rem ****************************************************************************
rem **** DO NOT CHANGE ANYTHING BELOW THIS POINT *******************************
rem ****************************************************************************
之下的内容就不要动了,否则后果自负。
至此,!Build_RC6.cmd文件修改好了,应该可以执行了,你一执行,发现RzBorder.pas文件报错,TNND,还要修改这个RzBorder.pas文件。
其实修改原则很简单,找到 DotMasks: TRzLEDCharacters 行,把它后面赋值的内容加一些右大括号【 } 】,使得不应该是注释的内容变回代码就行了,本人举个例子:
请将 ( {厎 Col0: $00; Col1: $00; Col2: $00; Col3: $00; Col4: $00 ),
改为 ( {厎} Col0: $00; Col1: $00; Col2: $00; Col3: $00; Col4: $00 ),
可不少行呢,认真改哟。
全部改好后,保存。执行!Build_RC6.cmd批处理,编译并安装完成。
至此,再次使用TRzSizePanel组件,在Align值为alTop或alBottom时完全正常,箭头颜色也会跟着你设置的VCL Style皮肤而变化,……大功告成!
奇怪,Raize也是个知名公司啊,Raize Components作为公司的招牌组件怎么会有这样的低级错误呢??
菲菲的家(ffhome.com)原创,转载请注明!
上述改动的源文件及编译后的dcu文件可以直接在此下载,劝君多动手啊,别老等现成!
Raize Components 6.0修整文件 (118.0 KiB, 1,523 点击, 最后更新:2012年02月25日)
Raize Components 6.0的下载就不用提供了吧~~
看帖回贴好习惯。不过,我是来围观、伸手要现成的来了,为什么只有XE2的?
管理员 ffhome: 2012年02月26日 上午 9:17 ∇地下1层
本人用的是XE2,呵呵 🙂
能给个 Raize6的下载地址吗?
或发我邮箱
管理员 ffhome: 2012年03月05日 下午 6:00 ∇地下1层
http://ishare.iask.sina.com.cn/f/23210354.html
无意中来到这里,发现主人写的东西很不错,过程写得很详细.
能提供一份Raize Components 6.0吗?谢谢
我用Raize Components 5.5.1在delphi下可以使用,但C++ Builder下却不见控件
,怎么解决?
管理员 ffhome: 2012年04月02日 下午 7:49 ∇地下1层
只能安装在delphi下。还是用6.0吧,见上面回复的地址。
虽然不懂,也来支持下
Authentic LV Outlet in USA
You made some really good points there. I looked on the net to find out more about the issue and found most people will go along with your views on this site.