|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.03.2009, 18:00 | #1 |
Форумчанин
Регистрация: 18.12.2008
Сообщений: 266
|
Двойная буферизация
Здравствуйте !
Хочу освоить Двойную буферизацию, но что то не получаеться, не могу понять в чем проблема. Ниже представлен код программы, подскажите где ошибка ? Код:
она размазана, при sam.Transparent:= False идет нормально. Конечно можно подобрать цвет sam.Canvas.Brush.Color:= clBtnFace , но это на простом фоне, а если сложный фон (картинка). Подскажите где ошибка и как ее исправить Мало открыть человеку глаза, большинство еще просит указать дорогу и ждет волшебного пенделя. |
26.03.2009, 20:29 | #2 |
Ra-Ra ?
Форумчанин
Регистрация: 06.03.2008
Сообщений: 286
|
После перерисовки, очищай старое место. Тоесть нарисовал, решил переместить, очистил, нарисовал опять. Поему тотже самый repaint тебя спасёт.
|
26.03.2009, 21:27 | #3 |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
Немного неправильный принцип отображения графики. Выбранный фон нужно хранить также в невидимом буфере и для "уничтожения" изменяемого рисунка (здесь текст также является графическим рисунком), брать из него область (Rect) по размеру рисунка и только после всех преобразований выводить результат на канву формы.
Посмотрите вот сюда : http://programmersforum.ru/showthread.php?t=38106 пост #6.
И не сомневайся даже ... отдых - кайф, работа - лажа!
|
26.03.2009, 23:38 | #4 |
Форумчанин
Регистрация: 18.12.2008
Сообщений: 266
|
Спасибо DeKot за ссылку.
Нашел для себя полезную информацию 'Устранение эффекта мигания'. Мало открыть человеку глаза, большинство еще просит указать дорогу и ждет волшебного пенделя. |
27.03.2009, 00:08 | #5 | |
Форумчанин
Регистрация: 24.11.2006
Сообщений: 108
|
Цитата:
Кстате начиная с Висты мелкософтые начали решать эту проблему. они зделали BufferedPaint. хотя если учесть как там медленно выводится графика через привычный TCanvas (или навпрямую через WinApi) то это скорее компенсацыя тормозов. (тестыл в цыкле вывод градиента. на маленьких участках виста существенно обгоняет XP а вот на больших - нервно курит в сторонке) |
|