Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как убрать мерцание TImage'а


Автор: Budy 5.5.2005, 08:17
:Приветствую
Подскажите как можно избавиться от мерцания TImage'а при "движении":
Код

procedure TForm1.Timer1OnTimer();
begin
  Image1.Left:=Image1.Left+5;
end;

Собсно проблема возникает когда подобных имагов намного боьше чем 1.
Заранее благодарю.

Автор: ~FoX~ 5.5.2005, 08:21
AlphiBlend := True

А нафига двигать имиджи, да еще и больше одного?

Автор: Archon7th 5.5.2005, 08:32
попробуй

Код

procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.DoubleBuffered := True;
end;


Автор: Budy 5.5.2005, 12:29
~FoX~, небольшая декорация smile
Под DirectX лень писать - надо двигать 8 картинок размером 128*128 по траектории пин-понга.
Ладно, спасибо.

Автор: ~FoX~ 5.5.2005, 14:26
Budy
А не проще не двигать восеми имаджей, а рисовать на канве одного восемь шариков, и проблемы с мерацанием пропадут и приложение тормозить не будет.

Автор: drinkOut 5.5.2005, 15:54
Имхо предложения ~FoX~ и Archon7th равносильны, т.к. активизация AlphaBlend'а вроде бы по-любому влечёт за собой включение двойной буферизации при перерисовке формы. smile

Автор: Yanis 5.5.2005, 17:18
Цитата(drinkOut @ 5.5.2005, 15:54)
Имхо предложения ~FoX~ и Archon7th равносильны, т.к. активизация AlphaBlend'а вроде бы по-любому влечёт за собой включение двойной буферизации при перерисовке формы.

По моему нет.

Автор: Archon7th 5.5.2005, 18:02
помойму тоже разные вещи ... хотя эффекты примерно одинаковые

Автор: Yanis 5.5.2005, 18:18
Цитата(Archon7th @ 5.5.2005, 18:02)
помойму тоже разные вещи ... хотя эффекты примерно одинаковые

Зато DoubleBuffered работает на всех системах. И мне кажется, что при AlphiBlend = true окно программы как то странно себя ведёт. Например при развёртке на весь экран какие то мерцания как и при загрузке формы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)