0 / 0 / 0
Регистрация: 24.11.2016
Сообщений: 35
|
||||||
1 | ||||||
Как очищать TextOut(x,y)?12.12.2016, 20:30. Показов 3236. Ответов 26
Метки нет (Все метки)
Привет всем.
Подскажите, как очищать TextOut(x,y)? При нажатии кнопки текст выводиться на image1 по координатам например (10,10), а при нажатии другой кнопки по координатам(40,50). Но у меня по старым координатам остается.
0
|
12.12.2016, 20:30 | |
Ответы с готовыми решениями:
26
Как очищать таблицу? Как правильно очищать память? Нужно ли очищать char * old value как? Как очищать и удалять элементы на странице? |
0 / 0 / 0
Регистрация: 24.11.2016
Сообщений: 35
|
|
12.12.2016, 20:34 [ТС] | 3 |
а можно поподробнее?
как правильно прописать
0
|
0 / 0 / 0
Регистрация: 24.11.2016
Сообщений: 35
|
|
12.12.2016, 21:02 [ТС] | 5 |
не помогло
0
|
0 / 0 / 0
Регистрация: 24.11.2016
Сообщений: 35
|
|
12.12.2016, 21:29 [ТС] | 7 |
0
|
843 / 738 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
|
||||||
12.12.2016, 23:05 | 8 | |||||
Svetlaya666,
0
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
|
13.12.2016, 01:15 | 9 |
когда в коде - одно, а на словах другое, невозможно понять, чего же человек хочет и чем его код не устраивает
0
|
884 / 404 / 174
Регистрация: 20.10.2016
Сообщений: 1,828
|
|
13.12.2016, 06:43 | 10 |
Svetlaya666, надо либо нарисовать поверх старого текста прямоугольник, соответствующий цвету заливки, либо скопировать соответствующий кусок текстуры, если в качестве фона - текстура. А поверх этого дела вывести новый текст. Либо целиком перерисовать весь битмап с нуля. Канва не содержит в себе информации об отдельных элементах, она представляет из себя холст с массивом пикселей разных цветов.
NIKOLAYY, а утечек памяти таким образом не будет? Все же битмап - это экземпляр класса, и просто так занулять ссылки на него, имхо, не очень правильно.
0
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
|
13.12.2016, 06:54 | 11 |
В данном случае это свойство, а объект должен сам позаботиться о тос что делать при таком изменении свойства
0
|
0 / 0 / 0
Регистрация: 24.11.2016
Сообщений: 35
|
|
13.12.2016, 19:49 [ТС] | 12 |
YuryK, Если ты понимаешь в делфи, то помоему все ясно и понятно, различны лишь координаты, помоему точность координат никак не относиться к моей проблеме
Добавлено через 21 минуту NIKOLAYY, если так прописываю, рисунок перестает выводиться в image совсем
0
|
884 / 404 / 174
Регистрация: 20.10.2016
Сообщений: 1,828
|
|
13.12.2016, 19:54 | 13 |
Svetlaya666, весьма логично, что перестаёт. Вы ж битмап удаляете. После удаления все надо нарисовать заново, но уже с новыми значениями, и все будет красиво.
0
|
0 / 0 / 0
Регистрация: 24.11.2016
Сообщений: 35
|
|
13.12.2016, 20:43 [ТС] | 14 |
Nanotentacle, не получается
....расчеты..... (потом вывод картинки и текста) Image1.Picture.Bitmap:=nil; btmp:=TBitMap.Create; btmp.LoadFromFile('D:\Diplom\Picture\Left.bmp'); image1.Canvas.Draw(20,20,btmp); btmp.Free; image1.Canvas.TextOut(130,15,FloatToStr(w) ); Image1.Canvas.TextOut(10,130,floatToStr(h)); Image1.Canvas.TextOut(100,250,floatToStr(t)); Image1.Canvas.TextOut(200,250,floatToStr(gl)); может не в то место в коде вставила?
0
|
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
|
||||||
13.12.2016, 20:51 | 15 | |||||
С коленки и с комментариями:
0
|
884 / 404 / 174
Регистрация: 20.10.2016
Сообщений: 1,828
|
|||||||||||
14.12.2016, 06:57 | 16 | ||||||||||
Вот честно, не лежит у меня сердце к занулению и удалению битмапа, который должен использоваться.
Делайте вот так каждый раз, как надо перерисовать новые числа:
0
|
843 / 738 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
|
||||||
14.12.2016, 08:53 | 17 | |||||
Не по теме: Че там не работает не понятно.. Я загрузил текст, почистил текст, затем снова загрузил и все работает..
0
|
53 / 53 / 5
Регистрация: 22.11.2016
Сообщений: 268
|
|
14.12.2016, 09:26 | 18 |
Вопрос неправильно сформулирован. На чем Svetlaya666, рисуете свой TextOut?
На чистом фоне, на рисунке, на векторной графике? Что было до отрисовки TextOut? На чистом фоне Вам ответили - надо поверх старого текста нарисовать прямоугольник. На рисунке предварительно скопировать подложку, фон. И при необходимости ей и затирать копированием. Полезными функциями будут TextWidth() и TextHeigth(). А методы "удалить всё" - это круто! Добавлено через 3 минуты TextOut после отрисовки уже "принадлежит" Bitmapу. Поэтому его не оторвать. Можно весь процесс отрисовки вынести в процедуру и просто перерисовывать всё с новым TextOut и рисование до и после. Можно использовать Label, который "плавает" отдельно от битмапа.
0
|
Nanotentacle
|
14.12.2016, 10:02
#19
|
Не по теме: NIKOLAYY, ещё раз: зачем занулять битмап, если на нем тут же планируется рисовать? На нем надо просто нарисовать, и все.
0
|
Житель Земли
|
|
14.12.2016, 13:59 | 20 |
Nanotentacle, для быстрой и полной очистки.
еще момент (который в данной задаче не имеет значения). если ты нарисовал что-то на имаге, потом изменил размер имага, то для рисования будет доступна область со старыми размерами, пока ты не занилишь свойство picture, тем самым пересоздав канву с новыми размерами. это так, для общего развития
0
|
14.12.2016, 13:59 | |
14.12.2016, 13:59 | |
Помогаю со студенческими работами здесь
20
Как правильно очищать вектор указателей Нужно ли очищать термопласту,если да то как? Как заставить браузер очищать кэш сайта Как очищать ленточную форму в access 2010? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |