Главная страница
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.007 c
15-1282728977
Baks
2010-08-25 13:36
2010.12.05
Хостинг Agava.ru vs NTHost.ru


15-1283113780
Юрий
2010-08-30 00:29
2010.12.05
С днем рождения ! 30 августа 2010 понедельник


2-1284398519
_Сергей_
2010-09-13 21:21
2010.12.05
Иероглифы а именах файлов


15-1283183477
puding
2010-08-30 19:51
2010.12.05
диалоговое окно.


15-1282854584
Юрий
2010-08-27 00:29
2010.12.05
С днем рождения ! 27 августа 2010 пятница