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

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

MoveTo, Pen.Color ;и LineTo слишком медленные, надо быстрее [D6, Win95/98]


D_V_I ©   (2002-11-28 13:15:00) 

Пожалуйста помогите!! У меня очень большой цикл вывода на Image.Canvas лайнов и мовов, и каждый раз меняется Pen.Color - это занимает дикое количество времени(7 секунд, а то и 20), может можно как-то через память(поточечно, побыстрее)? Подскажите как? Заранее благодарен.


Бурундук   (2002-11-28 14:33:00) [1]

Сначала всё-таки последуй совету тов. Слесаря Матерящегося (28.11.02 13:43)
и создай все нужные перья заранее.
(Pen.Assign работает гораздобыстрее, чем изменение св-в пера):

const
penRed = 0;
...

for i := 0 to
PreviouslyCreatedPens[i] := TPen.Create;

PreviouslyCreatedPens[penRed].Color := clRed;
...

А при рисовании не Pen.Color := clRed, а
Pen.Assign(PreviouslyCreatedPens[penRed]);

Может оказаться, что этого будет вполне достаточно.


HanIP   (2002-11-28 13:52:00) [2]

рисуй через WinApi очень быстро получается


Игорь Шевченко   (2002-11-28 13:52:00) [3]

Пример в controls.pas

procedure TWinControl.WMPaint(var Message: TWMPaint);


d_v_i   (2002-11-28 13:51:00) [4]

на каждом шаге цикла надо менять Pen.Color - дико медленно


Слесарь Матерящийся   (2002-11-28 13:43:00) [5]

>Pen.Color

А что мешает готовить пёрышки и кисти заранее?


D_V_I   (2002-11-28 13:41:00) [6]

Будте добры, поисните работу с BitBlt


Игорь Шевченко   (2002-11-28 13:39:00) [7]

Можно а) через Bitmap в памяти и последующим BitBlt
б) через DC Pen


Starkom   (2002-11-28 13:18:00) [8]

может прямо Canvas.Pixels[x,y].color:=нужный. Хотя, по идее, это еще медленее работать должно. Я как-то таким образом треугольник заливал в 1-х дельфях, работало жутко медленно.


Наверх

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