Delphi 6.0的一个Bug???

Adnil 2001-07-20 04:40:50
请见

http://www.csdn.net/expert/topic/200/200201.shtm
...全文
39 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
dana 2001-07-22
  • 打赏
  • 举报
回复
listen
转别人的东东 Raize Components 6.0 中的一点瑕疵 2012年02月25日 ? 学习交流 ? 暂无评论 ? 被围观 3 次+ 菲菲的家(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的下载就不用提供了吧~~

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧