Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

мерцание при анимировании


Страницы:   1 2

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 ...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо