Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1242636295
@!!ex
2009-05-18 12:44
2009.07.19
Реализация JumpHook на Delphi


2-1243338190
fox77
2009-05-26 15:43
2009.07.19
api функция цвет TBrush


2-1243149942
fedor12345
2009-05-24 11:25
2009.07.19
Как реализовать вставку строку в StringGrid перед другой строкой


15-1242505804
Юрий
2009-05-17 00:30
2009.07.19
С днем рождения ! 17 мая 2009 воскресенье


15-1242723217
lincal
2009-05-19 12:53
2009.07.19
InstallShield Installation Information





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский