发现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
|