![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как избавиться от мигания Image? [D5, Win95/98]
PlaZZma © (2002-03-29 16:52:00)Я уже наверное надоел, но при изменении содежимого Image(компонент) или его перемещении картинка неприятно мигает, а мне нужно быстро выводить анимационную последовательность. Можно ли от этого избавиться, если да, то как именно, а если нет, то каким ещё способом можно выводить на экран всякого рода картинки?
PlaZZma (2002-03-29 22:30:00) [1]Спасибо огромотнейшее
MBo (2002-03-29 17:13:00) [2]procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
doublebuffered:=true;//без этого моргает
for i:=1 to 100 do begin
image1.Picture.Loadfromfile("e:\4.bmp");
sleep(20);
refresh;
end;
end;
если нужно многократно выполнять рисование, при необходимости делают так
b:=TBitmap.create;
b.width:=100;
b.height:=100;
b.canvas. ... здесь все рисуем
в конце
Canvas.Draw(30,30,b);//копирует на форму
PlaZZma (2002-03-29 17:12:00) [3]2 MAxiMum:
Дело в том, что мигает он и во время перемещенмя мыши, и когда она на месте. Мигает он, когда я меняю изображение и когда меняю координаты компонента.
PlaZZma (2002-03-29 17:08:00) [4]MBo!
Плиз, объясни поподробнее, желательно кодом!
Заранее благодарен.
PlaZZma (2002-03-29 17:04:00) [5]MBo!
Плиз, объясни поподробнее, желательно кодом!
Заранее благодарен.
MAxiMum (2002-03-29 17:02:00) [6]Мигает она потому, что при движении курсора мыши вызывается сообщение WM_PAINT, которое заставляет перерисовывать изображение. Советую написать свой компонент, который не будет использовать данное сообщение. А будет зависеть от других сообщение, например, если мышь над компонентом и сдвинулась с места, то следует перерисовать лишь тот маленький кусочек, где была мышь и т.д.
О результатах прошу написать.
MBo (2002-03-29 17:00:00) [7]Doublebuffered.
иногда можно рисовать в bitmap в памяти и копировать Draw