Форум: "Начинающим";
Текущий архив: 2009.07.19;
Скачать: [xml.tar.bz2];
ВнизУдаление объекта после Assign Найти похожие ветки
← →
@!!ex © (2009-05-23 13:13) [0]Загружаю TJPEGImage после чего делаю TBitMap.Assign(TJPEGImage) и TBitMap далее используется.
Вопрос:
Можно ли после этого удалить TJPEGIMage?
← →
sniknik © (2009-05-23 13:23) [1]а чего нет? assign это же не присвоение указателя/обьекта это копирование его содержимого. (для гарантии посмотреть конкретную реализацию у TBitMap)
← →
@!!ex © (2009-05-23 13:24) [2]> [1] sniknik © (23.05.09 13:23)
Assign тока объекты ссылки копирует... Вот и не понятно, толи можно толи нельзя...
← →
sniknik © (2009-05-23 13:36) [3]> Assign тока объекты ссылки копирует...
сомневаюсь...
> Вот и не понятно, толи можно толи нельзя...
удали и посмотришь, AV есть? или еще лучше очисть его... если ссылка то и TBitMap будет пустым.
← →
@!!ex © (2009-05-23 13:45) [4]> [3] sniknik © (23.05.09 13:36)
> сомневаюсь...
http://www.delphisources.ru/pages/faq/base/method_assign.html
← →
@!!ex © (2009-05-23 13:45) [5]> [3] sniknik © (23.05.09 13:36)
> удали и посмотришь, AV есть? или еще лучше очисть его...
> если ссылка то и TBitMap будет пустым.
удали и посмотришь, AV есть? или еще лучше очисть его... если ссылка то и TBitMap будет пустым.
Я не могу сейчас проверить. Пишу болванку, которую можно будет только позднее протестировать.
← →
Игорь Шевченко © (2009-05-23 14:50) [6]
> Можно ли после этого удалить TJPEGIMage?
можно
← →
clickmaker © (2009-05-25 11:55) [7]> Assign тока объекты ссылки копирует
сам-то как думаешь: копирование ссылки достаточно, чтобы превратить jpeg в bitmap?
← →
@!!ex © (2009-05-25 14:00) [8]> [7] clickmaker © (25.05.09 11:55)
> сам-то как думаешь: копирование ссылки достаточно, чтобы
> превратить jpeg в bitmap?
Я думаю что нельзя. :)
В том то и дело, что я не доконца понимаю этот механизм, поэтому и решил спросить, чтобы избежать АВ и утечек памяти.
P.S.
ДОшел до стадии тестирования. Вроде уничтожение JPEG не сказывается отрицательно и АВ не вызывает.
← →
Игорь Шевченко © (2009-05-25 14:03) [9]
> В том то и дело, что я не доконца понимаю этот механизм
а исходники стер, чтобы враг не подсмотрел ?
← →
Ega23 © (2009-05-25 14:18) [10]
> Загружаю TJPEGImage после чего делаю TBitMap.Assign(TJPEGImage)
> и TBitMap далее используется.
> Вопрос:
> Можно ли после этого удалить TJPEGIMage?
В данной ситуации - можноvar
bmp : TBitmap;
jpg : TJPEGImage;
begin
bmp := TBitmap.Create;
try
jpg := TJPEGImage.Create;
try
jpg.LoadFrom..... ;
bmp.Assign(jpg);
finally
jpg.Free;
end;
// работаем с bmp
finally
bmp.Free;
end;
end;
← →
@!!ex © (2009-05-25 14:50) [11]> [9] Игорь Шевченко © (25.05.09 14:03)
> а исходники стер, чтобы враг не подсмотрел ?
У TJPEGImage нет исходников. Во всяком случе в Explorer"e
← →
MBo © (2009-05-25 15:03) [12]>@!!ex © (23.05.09 13:24) [2]
>Assign тока объекты ссылки копирует...
В справке же сказано:
The assignment operator makes Destination reference the same object as Source, whereas the Assign method copies the contents of the object referenced by Source into the object referenced by Destination.
И твоя ссылка в [4] в общем-то то же самое перепевает.
← →
DVM © (2009-05-25 15:20) [13]
> @!!ex © (25.05.09 14:50) [11]
> У TJPEGImage нет исходников.
Не у TJPEGImage, а у модуля jpeg. Да и они есть, если поискать, только не в составе Delphi.
← →
DVM © (2009-05-25 15:25) [14]
> @!!ex © (25.05.09 14:50) [11]
вот тут исходник модуля:
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=36400
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.07.19;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.004 c