Форум: "Основная";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];
ВнизКуда то ресурсы Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.012 c