Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.20;
Скачать: CL | DM;

Вниз

Куда то ресурсы   Найти похожие ветки 

 
Oleg_   (2003-11-10 15:18) [0]

В программе создается изображение и уже даже не используется, затем удаляется объект владелец.
Но даже при создании изображения есть проверка и при необходимости старое изображение удаляется.
При повторных созданиях, использованиях изображения проявляется закономерная нехватка ресурсов.
Что же не учтено?

var image_profil:timage;

...

if image_profil<>nil then begin
image_profil.Free;
image_profil:=nil;
end;
image_profil:=timage.Create(nil);
image_profil.Transparent:=true;
image_profil.Picture.Bitmap.TransparentMode:=tmAuto;
with image_profil.Picture.Bitmap do
begin
Height:=3000;//
Width:=700;//именно здесь : не хватает
//ситемной памяти
end;
//Если высота 3000 то ошибка выдается при втором заходе,
//если высота рис 1900 то при третьем заходе,
//если высота 1300 то при четвертом


 
panov ©   (2003-11-10 15:57) [1]

У тебя не показан код освобождения ресурсов.
Попробуй добавить перед Free вот такую строку - image_profil.Picture.Bitmap.Dormant;


 
Oleg_   (2003-11-10 16:13) [2]

panov ©
Пробовал
image_profil.Picture.Bitmap.Dormant;
то же самое.

Сам image_profill уже точно больше нигде не используется, я переименовал его добавив в конце l (image_profil->image_profill) и отследил все ссылки на него.

Проблема именно в этом участке кода, если в конце добавить
image_profill.Free;
image_profill:=nil;
т.е. сразу удалять image_profill все работает ОК
Буду копать деструктор объекта владельца, здесь ведь идет проверка перед созданием image, но походу он уже принадлежит другому объекту, так?


 
panov ©   (2003-11-10 17:01) [3]

Так у тебя ведь объекто создается таким образом, что у него нет владельца(timage.Create(nil)).
Вот если укажешь при создании владельца, то тогда он должен уничтожатся вместе с ним.



Страницы: 1 вся ветка

Текущий архив: 2003.11.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.033 c
1-65949
GSVSerg
2003-11-10 18:24
2003.11.20
MDI форма


1-65937
-=GaLaN=-
2003-11-11 14:52
2003.11.20
Изменение переменной в процедуре


6-66044
Dankin
2003-09-20 02:38
2003.11.20
Вот такой вопрос. Может кто знает как можно узнать номер телефона


1-65913
abs
2003-11-08 02:11
2003.11.20
Как перевести 8-ми байтное число типа Double?


1-65829
S@b@k@.
2003-11-10 04:36
2003.11.20
массив компонентов