День добрый... ПРОблемма такая, Есть два битмапа, один грузится из файла, другой получается копированием первого, затем первый битмап освабождается но в диспечере показывает что память не освабодилась.... вот пример
FirstPageBitmap:=Graphics.TBitmap.Create;
try
FirstPageBitmap.LoadFromFile('c:\test.bmp')
SecondPageBitmap:=Graphics.TBitmap.Create;
SecondPageBitmap.PixelFormat := pf1bit;
SecondPageBitmap.Width:=FirstPageWidth;
SecondPageBitmap.Height:=FirstPageHeight;
SecondPageBitmap.Canvas.CopyRect( Rect(0,0,SecondPageBitmap.Width,SecondPageBitmap.Height),
FirstPageBitmap.Canvas , Rect(0,0,FirstPageBitmap.Width,FirstPageBitmap.Height) );
finally
FirstPageBitmap.free;
end;
После FirstPageBitmap.free память не освабождается.... В чем может быть проблемма? Пол дня сегодня уже вожусь с этой ерундой, и заметил такие вещи, что если не делать
SecondPageBitmap.PixelFormat := pf1bit;
то как бы все ок, память жизнерадостно освабождается, и еще в тестовом проекте с основным потоком все работает нормально, а вот не в основном потоке вот такая лажа... В чем проблемма????
ИМХО — память выделяеться в куче и не освобождаеться до окончания работы приложения,
может менеджер памяти от борланд ждет что ее потом опят запросят, своего рода ооптимизация.
Кстати в Project Options -> Compiler -> Optimisation — обязательно сними галочку спасает от многих глюков в Делфи
Спасибо всем... вопрос решен, была проблемма с синхронизацией потоков... Lock и Unlock битмапа помогли
Здравствуйте, <Аноним>, Вы писали:
А>Кстати в Project Options -> Compiler -> Optimisation
А>- обязательно сними галочку спасает от многих глюков в Делфи
Жутко интересно от каких именно? у нас 1 000 000 строк кода с этой галочкой {$O+}
собирается , я уже начинаю переживать за наш проект !
... << RSDN@Home 1.2.0 alpha rev. 599>>