Posted on 1997-08-28
I have a Image control on which I'd like to do a simple horizontal wipe of a bitmap. Something like:
for i := 0 to MyBitmap.Width - 1 do begin
BitBlt(Image1.Canvas.Handle, i, 0, 1, MyBitmap.Height,
MyBitmap.Canvas.Handle, i, 0, SRCCOPY);
Without Application.ProcessMessages nothing happens until the window is redrawn again. With Application.ProcessMessages it exhibits horrendous flicker. It seems for each step in the loop, the background is erased, and then repainted. I want to supress such erasing, and simply Blit on to the screen line by line as quick as possible. I know I could use CopyRect, but it is irrelevant, since I see the same flicker for CopyRect. Can anyone help?
P.S. I don't want to use a timer!