现在的位置: 首页 > 菲菲文章 > 学习交流 > 正文

Raize Components 6.0 中的一点瑕疵

2012年02月25日 学习交流 ⁄ 共 2344字 ⁄ 字号 评论 11 条 ⁄ 阅读 39,444 次

菲菲的家(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,483 点击, 最后更新:2012年02月25日)

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

菲菲更名宝贝

目前有 11 条留言    访客:0 条, 博主:0 条

  1. loc 2012年02月26日 上午 9:09  @回复  Δ-49楼 回复

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


    • 管理员
      ffhome 2012年02月26日 上午 9:17  @回复  ∇地下1层 回复

      本人用的是XE2,呵呵 🙂

  2. mathsbean 2012年03月03日 下午 9:26  @回复  Δ-48楼 回复

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

  3. 小笨笨 2012年03月05日 上午 8:33  @回复  Δ-47楼 回复

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

  4. 昊晟 2012年04月02日 下午 3:06  @回复  Δ-46楼 回复

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

  5. 昊晟 2012年04月02日 下午 3:11  @回复  Δ-45楼 回复

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


    • 管理员
      ffhome 2012年04月02日 下午 7:49  @回复  ∇地下1层 回复

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

  6. 天天软件园 2013年03月31日 下午 4:30  @回复  Δ-44楼 回复

    虽然不懂,也来支持下

  7. LV Outlet Online USA 2013年05月17日 下午 7:38  @回复  Δ-43楼 回复

    Authentic LV Outlet in USA

  8. Nike Air Max schuhe 2013年07月25日 下午 3:20  @回复  Δ-42楼 回复

    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.

菲菲更名宝贝

给我留言

留言无头像?


QR Code Business Card