Hi Leute!
Ich habe im Internet folgenden Code gefunden, mit dem man Bilder langsam Reinfaden lassen kann. Leider sagt er mir immer einen Fehler, weiss aber leider nicht warum. Könnte sich vielleicht jemand mal den Code anschauen und auch testen und mir dann sagen, wo der Fehler liegt? Wäre echt nett!
<pre>procedure TForm1.FadeIn(Steps: Integer; Src, Dest: Integer);
var
i, x, y: Integer;
SrcScan, DestScan: PByteArray;
begin
for i := 0 to Steps do
begin
for y := 0 to Images.Items[Src].Picture.Bitmap.Height-1 do
begin
// Get the scanlines.
DestScan := Images.Items[Dest].Picture.Bitmap.ScanLine[y];
SrcScan := Images.Items[Src].Picture.Bitmap.ScanLine[y];
// height * 3 for 24 bpp.
for x := 0 to (Images.Items[Src].Picture.Bitmap.Width) * 3 do
DestScan[x] := (SrcScan[x] * i) div Steps;
end;
// Restore the bitmap and draw it.
Images.Items[Dest].Restore;
Images.Items[Dest].Draw(DXDraw.Surface,0,0,0);
DXDraw.Flip;
end;
end;// FadeIn
</pre>
Gruß Christian
Ich habe im Internet folgenden Code gefunden, mit dem man Bilder langsam Reinfaden lassen kann. Leider sagt er mir immer einen Fehler, weiss aber leider nicht warum. Könnte sich vielleicht jemand mal den Code anschauen und auch testen und mir dann sagen, wo der Fehler liegt? Wäre echt nett!
<pre>procedure TForm1.FadeIn(Steps: Integer; Src, Dest: Integer);
var
i, x, y: Integer;
SrcScan, DestScan: PByteArray;
begin
for i := 0 to Steps do
begin
for y := 0 to Images.Items[Src].Picture.Bitmap.Height-1 do
begin
// Get the scanlines.
DestScan := Images.Items[Dest].Picture.Bitmap.ScanLine[y];
SrcScan := Images.Items[Src].Picture.Bitmap.ScanLine[y];
// height * 3 for 24 bpp.
for x := 0 to (Images.Items[Src].Picture.Bitmap.Width) * 3 do
DestScan[x] := (SrcScan[x] * i) div Steps;
end;
// Restore the bitmap and draw it.
Images.Items[Dest].Restore;
Images.Items[Dest].Draw(DXDraw.Surface,0,0,0);
DXDraw.Flip;
end;
end;// FadeIn
</pre>
Gruß Christian