Страница: 1 |
Страница: 1 |
Вопрос: Graphics из bitmap
Добавлено: 19.05.06 01:08
Автор вопроса: SPArk | Web-сайт:
Вот тут такая проблема. Есть 2 рисунка- bmp1 и bmp2. Есть gr1 - графика первого рисунка, которой при загрузке формы присваивается значения графики рисунка bmp1. Цель- создать временную копию рисунка bmp1 (то есть поместить содержимое в bmp2), поработать с bmp1, а потом вернуть обратно его прежнее содержимое из bmp2. Например это можно использовать для отмены последнего действия.
'например вот
dim bmp1, bmp2 as bitmap
dim gr1 as graphics
bmp1=new bitmap(100,100)
bmp2=new bitmap(100,100)
bmp2=bmp1 'и вот начиная отсюда идут глюки
gr.drawline((Pens.Black, 10, 10, 50, 50) 'рисуем линию в графике первого рисунка
, но почему-то рисует он в обоих. Как будто бы при копировании содержимого первого рисунка во второй, второму тоже присваивается gr, то есть графика первого. И рисует он в обоих... Вот и собссно суть проблемы. Как правильно работать с графикой? Помогите разобраться...
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
SPArk
ICQ: 190153075
Вопросов: 5
Ответов: 10
Web-сайт:
Профиль | | #1
Добавлено: 19.05.06 01:08
в последней строчке должно быть gr1 вместо gr. Не обращайте внимания...
Номер ответа: 2
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #2
Добавлено: 19.05.06 03:58
Фишка в том, что после этого действия, у тебя обе переменные указывают на один и тот же объект!!! Соответственно, рисуя на одном, тоже самое будет происходить и на другом. Ты не создал копию, ты создал 2 ссылки на ОДИН объект..
Номер ответа: 3
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #3
Добавлено: 19.05.06 04:05
Правильно будет так:
Номер ответа: 4
Автор ответа:
SPArk
ICQ: 190153075
Вопросов: 5
Ответов: 10
Web-сайт:
Профиль | | #4
Добавлено: 22.05.06 01:22
СПАСИБО ОГРОМНОЕ. Так и думал, что создаётся идентичный обьект... Только не понял, как обойти проблему.
Номер ответа: 5
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #5
Добавлено: 22.05.06 02:23
в том то и дело,что объект у тебя НЕ создается! а создается ссылка, указывающая на ТОТ ЖЕ САМЫЙ объект!
Номер ответа: 6
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #6
Добавлено: 01.07.06 05:06
Можно еще использовать Bitmap.Clone