菲菲的家(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 的下载就不用提供了吧~~




看帖回贴好习惯。不过,我是来围观、伸手要现成的来了,为什么只有XE2的?
本人用的是XE2,呵呵
能给个 Raize6的下载地址吗?
或发我邮箱
http://ishare.iask.sina.com.cn/f/23210354.html
无意中来到这里,发现主人写的东西很不错,过程写得很详细.
能提供一份Raize Components 6.0吗?谢谢
我用Raize Components 5.5.1在delphi下可以使用,但C++ Builder下却不见控件
,怎么解决?
只能安装在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.