Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];

Вниз

MoveTo, Pen.Color и LineTo слишком медленные, надо быстрее   Найти похожие ветки 

 
D_V_I   (2002-11-28 13:15) [0]

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


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

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


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

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


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

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


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

>Pen.Color

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


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

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


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

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


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

Пример в controls.pas

procedure TWinControl.WMPaint(var Message: TWMPaint);


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

Сначала всё-таки последуй совету тов. Слесаря Матерящегося (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]);

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
3-27904
Игорь, г.Алапаевск
2002-11-21 17:06
2002.12.09
Упаковать таблицу


4-28358
sender
2002-10-28 19:06
2002.12.09
Буфер ввода/вывода


1-28024
Tenrai
2002-11-30 01:11
2002.12.09
MDI-приложение


1-27931
roman002
2002-11-29 04:44
2002.12.09
kylix


1-28050
Abelevich
2002-11-27 19:39
2002.12.09
Использование Word в качестве редактора





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский