Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1284403756
puding
2010-09-13 22:49
2010.12.05
popup меню


15-1282728977
Baks
2010-08-25 13:36
2010.12.05
Хостинг Agava.ru vs NTHost.ru


2-1284521187
03111978
2010-09-15 07:26
2010.12.05
Помогите раскрасить ComboBox


6-1230233588
vad_shesh
2008-12-25 22:33
2010.12.05
Как определить, открыт ли эксель-файл в ЛС


15-1283231904
12
2010-08-31 09:18
2010.12.05
Как заставить delphi 7 при старте на весь экран быть?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский