Subject:
发现cnWaterImage组件(水波效果处理单元)的BUG,已进行简单修复.
[Print This Page]
Author:
zgcc
Time:
2009-7-30 23:36
Subject:
发现cnWaterImage组件(水波效果处理单元)的BUG,已进行简单修复.
错误为:
当cnWaterImage的宽度或高度<=0的时候, 程序报错!
简单的用try.. except 修复了一下. 希望作者能重新更新该单元.
错误代码片段如下:
procedure TCnWaterEffect.DrawWater(ALightModifier: Integer; Src, Dst:
TBitmap);
var
dx, dy: Integer;
i, c, x, y: Integer;
P1, P2, P3: PIntArray;
PDst: PRGBArray;
PSrcDot, PDstDot: PRGBTriple;
BytesPerLine1, BytesPerLine2: Integer;
begin
// 先将源图复制到目标图,如果有变化的再在后面按点处理
Src.PixelFormat := pf24bit;
Dst.PixelFormat := pf24bit;
BitBlt(Dst.Canvas.Handle, 0, 0, Src.Width, Src.Height, Src.Canvas.Handle, 0, 0, SRCCOPY);
FScanLineSrc[0] := Src.ScanLine[0]; //位图宽度或高度<=0时出错
//......
简单修复为:
try
FScanLineSrc[0] := Src.ScanLine[0]; //zgcc修复: 位图宽度或高度<=0时出错
except
exit;
end;
-----------------------------
附件为修改之后的单元. 请作者检查并在下一个版本修复该问题.
Attachment:
CnWaterEffect.rar
(2009-7-30 23:36, 2.95 K) / Download count 565
http://bbs.cnpack.org/attachment.php?aid=669
Author:
zjy
Time:
2009-7-31 10:20
Subject:
多谢报告!
已修正为:
procedure TCnWaterEffect.Render(Src, Dst: TBitmap);
begin
if (FWidth > 0) and (FHeight > 0) then
begin
CalcWater;
DrawWater(FLightModifier, Src, Dst);
end;
end;
您可以自行修改代码,或从svn中更新,或等待下一版本组件包发布。
Welcome to CnPack Forum (http://bbs.cnpack.org/)
Powered by Discuz! 5.0.0