![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
мерцание при анимировании
melena © (2005-08-22 16:06:00)Подскажите пожалуйста, Как избавиться от мерцания при анимировании?
grouzd[E]v (2005-08-24 23:13:00) [1]Мифическое такое существо. Ходит по форумам и задает т-у-п-ы-е вопросы.
Читай архив "Игр".
---
... we are walking on a thin line and you better avoid the risk ...
OldNaum (2005-08-24 22:43:00) [2]{offtopic}
а че за Новоуральск? все про него говорят рано или поздно в некоторых топиках. а я мимо ) расскажите на досуге ) даешь ветку "Новоуральск" в "Потрепаться" ) sorry за оффтоп )
{/offtopic}
grouzd[E]v (2005-08-24 22:28:00) [3]> я тебе на мыло сбросила, получил?
да
> [20] OldNaum © (24.08.05 21:39)
Скажи это Новоуральску =)
ЗЫ Хотя... к тому ж землячка...
---
... we are walking on a thin line and you better avoid the risk ...
OldNaum (2005-08-24 21:39:00) [4]{offtopic}
Как активно Мастера всегда бросаются помогать дэвушкам ) Любят давать мыла / аси ) LOL. sorry за оффтоп )
{/offtopic}
melena (2005-08-24 21:23:00) [5]я тебе на мыло сбросила, получил?
grouzd[E]v (2005-08-24 17:52:00) [6]Диагноз =) Стучись в аську 243059969
ЗЫ Сырцы - исходники
---
... we are walking on a thin line and you better avoid the risk ...
melena (2005-08-24 17:33:00) [7]с чем извини?
интересная штука:запускаю exe'шный файл на компе, где не установлен delphi, все нормально-ничего не мерцает, фигня какая-то:-Р
grouzd[E]v (2005-08-24 16:30:00) [8]Тогда нужно смотреть на программу. И лучше с сырцами
---
... we are walking on a thin line and you better avoid the risk ...
melena (2005-08-24 12:42:00) [9]да нет, макс частота 25 гц, у монитора 85
grouzd[E]v (2005-08-24 12:23:00) [10]Может частота шарика > частоты монитора?
---
... we are walking on a thin line and you better avoid the risk ...
melena (2005-08-24 08:37:00) [11]вобщем пульсирует шарик с определенной частотой, когда частота пульсации маленькая, те от 1 до где-то 5 гц все нормально ничего не мерцает, а вот при большей частоте при прорисовке шарика с новым радиусом уже видно мерцание, те пробегает полоса.
grouzd[E]v (2005-08-24 00:59:00) [12]А они лежат ПОВЕРХ той области, на которой рисуешь?
И вообще, что моргает - форма или компоненты?
---
... we are walking on a thin line and you better avoid the risk ...
melena (2005-08-23 23:08:00) [13]есть меню ,пара edit'ов и пара label'ов
grouzd[E]v (2005-08-23 22:28:00) [14]Да нет, я пробовал. Если форму не перерисовывать мерцания нет даже без вклуючения doublebuffered. А на форме есть еще какие-нибудь компоненты?
ЗЫ имхо лучше все же рисовать на канве TImage'а
---
... we are walking on a thin line and you better avoid the risk ...
melena (2005-08-23 21:20:00) [15]да нет я ничего такого не делаю,но раньше я рисовала сразу на канве, вот тогда мерцало сильнее, а сейчас с таким кодом намного меньше,может моргает из-за того что интервал у таймера очень маленький?
grouzd[E]v (2005-08-23 19:33:00) [16]А ты refresh / repaint для формы делаешь?
Если делать, то моргать будет даже с двойным буфером
Выход: рисовать на канве TImage
---
... we are walking on a thin line and you better avoid the risk ...
melena (2005-08-23 18:08:00) [17]вобщем все это выглядит вот так
timer1.Interval:=20;
....
procedure TForm2.Timer1Timer(Sender: TObject);
begin
bm.Canvas.Brush.Color:=clbackground;
bm.Canvas.fillRect(rect(0,0,Form2.ClientWidth,Form2.ClientHeight));
t:=t+timer1.Interval;
//Edit2.Text:=inttostr(t);
if t<c then begin
r:=r0;
bm.Canvas.Brush.Color:=clyellow;
bm.Canvas.Pen.Color:=clyellow;
bm.Canvas.Ellipse(150-r,150-r,150+r,150+r);
end;
if (t>c) and (t<p) then begin
r:=r0+round(a*abs(sin(pi*v*(t-c)/1000)));
bm.Canvas.Brush.Color:=clyellow;
bm.Canvas.Pen.Color:=clyellow;
bm.Canvas.Ellipse(150-r,150-r,150+r,150+r);
end;
if (t=p) or (t>p) then begin t:=t-p;
bm.Canvas.Brush.Color:=clyellow;
bm.Canvas.Pen.Color:=clyellow;
bm.Canvas.Ellipse(150-r0,150-r0,150+r0,150+r0);
end;
//Edit1.Text:=inttostr(r);
//Edit3.Text:=inttostr(round(a*abs(sin(pi*v*t/1000))));
Form2.Canvas.Draw(0, 0, bm);
end;
grouzd[E]v (2005-08-23 15:05:00) [18]Так ты как делаешь? Рисуешь на канве или двигаешь button'ы c image'ами?
Кстати, если двигаешь на панели (она же TPanel), то doublebuffered нужно ставить не для формы, а для этой панели
Лучше, напиши код
---
... we are walking on a thin line and you better avoid the risk ...
melena (2005-08-23 12:52:00) [19]да добавила я form1.doublebuffered := true в proc TForm1.FormCreate все-равно мерцает
grouzd[E]v (2005-08-22 23:13:00) [20][2] melena © (22.08.05 17:48)
А куда уж подробнее? У вормы есть свойство doublebuffered - присваивем ему true и ага
ЗЫ Вах! Землячка! НН рулит!
[3] programania © (22.08.05 22:45)
А может ей надо TImage'ы двигать?
---
... we are walking on a thin line and you better avoid the risk ...