Форум: "Начинающим";
Текущий архив: 2010.12.05;
Скачать: [xml.tar.bz2];
ВнизРисование на канве TImage Найти похожие ветки
← →
Zenith (2010-09-14 00:28) [0]Здравствуйте, ситуация такова. Кидаю TImagе на форму, загружаю в него bmp-картинку, в процессе работы рисую на канвасе (точнее, вывожу текст посредством TextOut). При первой прорисовке все отлично, но при втором вызове процедуры рисования новый текст накладывается на старый, а старый не убирается, поэтому получается нагромождение текста :(
В чем решение проблемы?
Всякие Refresh, Repaint, Invalidate не помогают...
← →
Zenith (2010-09-14 00:30) [1]Нужно что-то вроде Canvas.Clear
← →
Германн © (2010-09-14 01:00) [2]
> Нужно что-то вроде Canvas.Clear
Такого в данном случае нет. Компонент TImagе пока что не поддерживает "слои". :)
← →
Zenith (2010-09-14 01:13) [3]Попробовал заменить компонентом TPaintBox - та же самая история :(
Почему при повторном вызове процедуры рисования на канвасе новый текст накладывается на старый? Как убрать старый текст?
← →
Германн © (2010-09-14 02:06) [4]
> Почему при повторном вызове процедуры рисования на канвасе
> новый текст накладывается на старый?
По определению. Вот ты рисуешь на стене новое "граффити". Разве уже нарисованное ранее удаляется само собой? Нет. Они суммируются по неким правилам. (Стена - канвас. BMP-картинка, текст, новый текст - граффити).
> Как убрать старый текст?
Для начала прочитать http://www.gunsmoker.ru/2008/10/x-y-z.html
Потом заменить X на Z.
Тогда можно будет попробовать ответить.
← →
sniknik © (2010-09-14 07:54) [5]> загружаю в него bmp-картинку
загружай не в него, а в битмап, вместо очистки отрисовка на имедже этого битмапа.
или, объект с текстом положи поверх имеджа (лейбел не пойдет, нужен "оконный контрол" типа "статиктекста". и только меняй в нем текст.
← →
Anatoly Podgoretsky © (2010-09-14 09:35) [6]> Zenith (14.09.2010 01:13:03) [3]
А на бумаге у тебя получается?
← →
Zenith (2010-09-14 12:29) [7]С бумаги я могу стереть предыдущий текст резинкой, а с канваса получится? Подскажи как.
← →
бумбум (2010-09-14 12:53) [8]
> Zenith (14.09.10 12:29) [7]
> С бумаги я могу стереть предыдущий текст резинкой, а с канваса
> получится? Подскажи как.
Зачем стирать, не проще ли залить одним цветом белым или какой у тебя там по умолчанию на форме например.
← →
бумбум (2010-09-14 12:54) [9]Image1.Canvas.Brush.Color:= Clwhite;
← →
Zenith (2010-09-14 14:15) [10]
> sniknik © (14.09.10 07:54) [5]
>
> > загружаю в него bmp-картинку
> загружай не в него, а в битмап, вместо очистки отрисовка
> на имедже этого битмапа.
Замечательное решение! Спасибо.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.12.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c