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

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

Перерисовка Canvas [D6, Win95/98, WinME, Win2k, WinXP]


Вовчик ©   (2002-06-06 02:17:00) 

Народ подскажите как быстро перерисовывать рисунок, а то я рисую, а потом если протащить поверху какой нить панелькой, то она все затирает
Пробовал и на OnPaint вешать перерисовку и переопределить метод Paint, в принципе работает, но медленно видно косяки


int64   (2002-06-07 12:28:00) [1]


> ну нет у меня оригинала, картинка меняется динамически

Ну так сделай, чтоб был. Рисуй на оригинале, а потом на канву копируй. Причём копировать весь оригинал не обязательно. Достаточно брать те прямоугольники, что изменились(включая на репайнте UpdateRect).
А если хочешь прорисовку не по фрагментам, а полностью на всю канву, так и юзай TImage.


Andrey007   (2002-06-07 10:20:00) [2]

Перерисовка рисунка не происходит при перетаскивании над ним окон если рисунок находится на Image.Canvas. У Вас, похоже, он на Form.Canvas.


Вовчик   (2002-06-06 06:59:00) [3]

ну нет у меня оригинала, картинка меняется динамически


skiph   (2002-06-06 04:23:00) [4]

Если у тебя есть оригинал в другом рисунке копируй:
BitBtn(ToBMP.Canvas.Handle, Left1, Top1, Right1, Bottom1, FromBMP.Canvas.Handle, Left1, Top1, SrcCopy);


Наверх

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