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