-
Здравствуйте !
Если не принимать особых мер, то при движении картинки (например, объекта Shape) или при изменении цвета в runtime наблюдается мелькание. Например, такой код: procedure TForm1.Shape2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); label me1; begin me1: begin Shape2.Left:= Shape2.Left + 1; Application.ProcessMessages; sleep(30); end; if Shape2.Left < 580 then goto me1; Shape2.Left:= 104; end;
Эффект давно известный. Думал, что это неизбежно, но наверное, опытные программисты знают решение ?
-
если нужна просто анимация - то стоит рисовать на буферном битмапе и потом его выводить на форму. И не использовать sleep() в основном потоке программы
-
Спасибо.
Но если не использовать sleep, то как можно задержать картинку на экране перед ее изменением ?
-
сделать обычным таймером передвижение
-
Спасибо. Действительно, про таймер как-то забыл. Наверное, потому, что sleep написать проще :-)
-
|