Raize Components 6.0 中的一点瑕疵

9次阅读
11 条评论

菲菲的家(ffhome.com)原创,转载请注明!

Raize Components 是一组优秀的 Delphi 和 C ++builder 的控件,6.0 版全面支持 Embarcadero RAD Studio XE2。为了达到全面支持 XE2 的目的,Raize 公司对源代码进行了大量的改动,除支持 Delphi 64bit 编译外,对 XE2 新增的一些特性如 VCL Style 等也进行了支持。

刚刚到手,迫不及待安装试用,却发现了 Raize Components 6.0 存在的一点点瑕疵。

Raize Components 6.0 中的一点瑕疵

这个瑕疵就是 TRzSizePanel 组件在 Align 值为 alTop 或 alBottom 时,它的 HotSpot 自绘小箭头和点线存在问题。哈哈,有人说了,这算什么问题……这的确是个小小的问题,也许你根本用不上 TRzSizePanel 组件,也许你用 TRzSizePanel 组件时 HotSpotVisible 值设为 false,但如果你一旦用到 HotSpot,没箭头是真的不爽……

Align 值为 alLeft 或 alRight 时就没有问题,见以下图片,红色框内的就是没有箭头的 HotSpot。

Raize Components 6.0 中的一点瑕疵

我花时间看了一下源代码,找到了解决这个瑕疵的办法:

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 Components 6.0 中的一点瑕疵   Raize Components 6.0 中的一点瑕疵

奇怪,Raize 也是个知名公司啊,Raize Components 作为公司的招牌组件怎么会有这样的低级错误呢??

菲菲的家(ffhome.com)原创,转载请注明!

上述改动的源文件及编译后的 dcu 文件可以直接在此下载,劝君多动手啊,别老等现成! 

  文件名称:
  文件大小:
  下载声明:本站部分资源来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息。
下载地址:

Raize Components 6.0 的下载就不用提供了吧~~

正文完
 0
评论(11 条评论)
loc
2012-02-26 09:09:39 回复

看帖回贴好习惯。不过,我是来围观、伸手要现成的来了,为什么只有XE2的? :mrgreen:

 Windows  Firefox  中国河南省漯河市联通
    2012-02-26 09:17:46 回复

    本人用的是XE2,呵呵 :smile:

     Windows  MSIE  中国黑龙江省哈尔滨市电信
mathsbean
2012-03-03 21:26:40 回复

能给个 Raize6的下载地址吗?
或发我邮箱

 Windows  Chrome  中国北京北京市联通
小笨笨
2012-03-05 08:33:42 回复

无意中来到这里,发现主人写的东西很不错,过程写得很详细.

 Windows  MSIE  中国广西南宁市铁通
昊晟
2012-04-02 15:06:21 回复

能提供一份Raize Components 6.0吗?谢谢

 Windows  MSIE  中国新疆乌鲁木齐市电信
昊晟
2012-04-02 15:11:06 回复

我用Raize Components 5.5.1在delphi下可以使用,但C++ Builder下却不见控件
,怎么解决?

 Windows  MSIE  中国新疆乌鲁木齐市电信
    2012-04-02 19:49:27 回复

    只能安装在delphi下。还是用6.0吧,见上面回复的地址。

     Windows  MSIE  中国黑龙江省哈尔滨市电信
2013-03-31 16:30:19 回复

虽然不懂,也来支持下

 Windows  Chrome  中国四川省绵阳市电信
2013-05-17 19:38:34 回复

Authentic LV Outlet in USA

 Windows  MSIE  中国四川省绵阳市电信
2013-07-25 15:20:52 回复

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.

 Windows  MSIE  中国四川省绵阳市电信