菲菲的家(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, 209 点击, 最后更新:2012 年 02 月 25 日)
Raize Components 6.0的下载就不用提供了吧~~




浙公网安备 33010602011771号