Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.12.05;
Скачать: CL | DM;

Вниз

Рисование на канве 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
2-1284406232
ZV
2010-09-13 23:30
2010.12.05
Проблемы с компонентом TPanel


8-1208085390
Sergey
2008-04-13 15:16
2010.12.05
Изменение скорости воспроизведения видео


15-1282763419
Desdechado
2010-08-25 23:10
2010.12.05
Каптча в стиле дзен


15-1282901996
Дмитрий Тимохов
2010-08-27 13:39
2010.12.05
Просветите про темы в Windows


2-1284475363
Aleks
2010-09-14 18:42
2010.12.05
Привязка проги к винту