Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2011, 17:05   #1
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию Сохранить и вернуть обратно содержимое Canvas (delphi)

Приветствую всех форумчан. Я наткнулся на такой колючий вопрос. Мне нужно копировать все то, что находится на PaintBox, провести какие-то махинации на нем и вернуть обратно. С одной стороны это не нужно, но я хочу сделать, как бы, кнопку "Отменить изменение". Как можно сохранить то, что нарисовано в Canvas? Каким образом вернуть обратно?
Буду очень благодарен.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 31.03.2011, 18:17   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Ну делайте обьект типа TBitmap.
В него через CopyRect копируйте изображение. вот ну а потом если нужно, то методом Draw выведите назад!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 31.03.2011, 20:03   #3
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Меня, собственно, и интересует как вывести с помощью Draw.

Можете привести простейший код?

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 31.03.2011 в 21:23.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 31.03.2011, 21:50   #4
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

OldCanvas - глобальная переменная Tbitmap.
JobOblast - TPaintBox;

Вот первая процедура. В ней сохраняется содержимое canvas в Tbitmap
Код:
var
Dest,Souers:TRect;

begin

OldCanvas:=Tbitmap.Create;
OldCanvas.Width:=JobOblast.Width;
OldCanvas.Height:=JobOblast.Height;

Dest:=Rect(0,0, OldCanvas.Width, OldCanvas.Height);
Souers:=Rect(0,0,JobOblast.Width, JobOblast.Width);

OldCanvas.Canvas.CopyRect(Dest,JobOblast.Canvas,Souers);
end;
Вот вторая процедура. Она должна все возвращать, но этого не происходит. Рисунок рястягивается вниз(часть не видно т.к. paintbox не меняет размер)

Код:
var
Dest,Souers:TRect;
begin

Dest:=Rect(0,0,JobOblast.Width, JobOblast.Width);
Souers:=Rect(0,0, OldCanvas.Width, OldCanvas.Height);

OldCanvas.Width:=JobOblast.Width;
OldCanvas.Height:=JobOblast.Height;

JobOblast.Canvas.CopyRect(Dest,JobOblast.Canvas,Souers);

end;
Что не так?

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранить содержимое memo с форматированием meklias Компоненты Delphi 9 25.03.2011 22:04
Вернуть radio обратно Andrey85 Работа с сетью в Delphi 2 13.11.2010 17:07
Canvas обрезать, сохранить.. sergeyrulit Общие вопросы Delphi 6 08.08.2010 12:54
как удалить содержимое ячейки, чтобы сохранить ее формулу mvl1000000 Microsoft Office Excel 5 06.03.2010 21:27
Как сохранить содержимое StringGrid-a в Unicode? iiunbreakableii Общие вопросы Delphi 2 28.08.2009 14:48