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

Вниз

Как правильно убить TBitmap ?   Найти похожие ветки 

 
dimushkin   (2003-05-30 09:46) [0]

BM:=TBitmap.Create;
BM.Height:=36;
BM.Width:=36;

...

BM.Free;

казалось бы все правильно НО через определенное колличесво таких вот манипуляций возникает ошибка... такое чувство что паять то освобождается а ресурсы GDI текут...

может кто сталкивался?


 
Might   (2003-05-30 10:31) [1]

Можно попробовать:
BM.Destroy


 
dimushkin   (2003-05-30 10:39) [2]

BM.FREE есть не что иное как :
if Assigned(BM) then BM.Destroy;

кстати так у меня в проге BM и убивается
:-(


 
pasha676   (2003-05-30 12:39) [3]

Может надо
Bitmap.Free;
Bitmap:=nil;

Хотя лично мне кажется что ошибка не в битмапе.


 
Дмитрий К.К. ©   (2003-05-30 15:23) [4]

Про try-finally-end не слыхал?


 
AlexT1000 ©   (2003-05-30 15:28) [5]

дело не в битмапе. ищи ошибку в другом месте своей проги


 
Плохой человек   (2003-05-30 22:17) [6]

У меня похожее было. Я бы на вашем месте ещё перед этим делом делал бы FreeImage.


 
Evgeny ©   (2003-05-31 07:41) [7]

Без исходного кода, трудно что-либо сказать, но возможно возникает ситуация когда освобождения битмапа не происходит. Если процесс динамический и часто повторяемый, то вот она и потеря ресурсов.


 
Fenik ©   (2003-05-31 11:37) [8]

У меня прекрасно работает:

Bitmap := TBitmap.Create;
try
...
finally
Bitmap.Free;
end;


 
WInAPi Lamer   (2003-06-01 14:48) [9]

ОШИБКА НЕ В БИТМАПЕ А В НЕХВАТКЕ РЕСУРСОВ КОМПА.
ЧТО БЫ НЕ ВОЗНИКАЛО ЭТОЙ ОШИБКА НУЖНО
if Assigned(BM) then BM.Destroy
ИЛИ
( BM) ОШИБКА НЕ В БИТМАПЕ А В НЕХВАТКЕ РЕСУРСОВ КОМПА.
ЧТО БЫ НЕ ВОЗНИКАЛО ЭТОЙ ОШИБКА НУЖНО
if Assigned(BM) then BM.Destroy
ИЛИ
if Assigned(BM) then BM:=NIL;


 
Song ©   (2003-06-01 15:11) [10]

2WInAPi Lamer (01.06.03 14:48)
О как :)


 
Плохой человек   (2003-06-01 15:40) [11]

> ОШИБКА НЕ В БИТМАПЕ А В НЕХВАТКЕ РЕСУРСОВ КОМПА.
ЧТО БЫ НЕ ВОЗНИКАЛО ЭТОЙ ОШИБКА НУЖНО
( BM)
>ОШИБКА НЕ В БИТМАПЕ А В НЕХВАТКЕ РЕСУРСОВ КОМПА.
ЧТО БЫ НЕ ВОЗНИКАЛО ЭТОЙ ОШИБКА НУЖНО
if Assigned(BM) then BM.Destroy
ИЛИ
if Assigned(BM) then BM:=NIL;

BM.Free именно это и делает и именно этим и отличается от BM.Destroy.


 
panov ©   (2003-06-01 23:13) [12]


procedure TForm1.Button1Click(Sender: TObject);

var
BitMap1,BitMap2 : TBitMap;
MyFormat : Word;
begin
BitMap2 := TBitMap.Create;
BitMap1 := TBitMap.Create;
try
BitMap1.LoadFromFile("c:\Program Files\common Files\Borland Shared\Images\Splash\256color\factory.bmp");
BitMap2.Assign(BitMap1); // Copy BitMap1 into BitMap2
BitMap2.Dormant; // Free up GDI resources
BitMap2.FreeImage; // Free up Memory.
Canvas.Draw(20,20,BitMap2); // Note that previous calls don"t lose the image

BitMap2.Monochrome := true;
( 80,80,BitMap2)

procedure TForm1.Button1Click(Sender: TObject);

var
BitMap1,BitMap2 : TBitMap;
MyFormat : Word;
begin
BitMap2 := TBitMap.Create;
BitMap1 := TBitMap.Create;
try
BitMap1.LoadFromFile("c:\Program Files\common Files\Borland Shared\Images\Splash\256color\factory.bmp");
BitMap2.Assign(BitMap1); // Copy BitMap1 into BitMap2
BitMap2.Dormant; // Free up GDI resources
BitMap2.FreeImage; // Free up Memory.
Canvas.Draw(20,20,BitMap2); // Note that previous calls don"t lose the image

BitMap2.Monochrome := true;
Canvas.Draw(80,80,BitMap2);
BitMap2.ReleaseHandle; // This will actually lose the bitmap;
finally
BitMap1.Free;
BitMap2.Free;
end;
end;


 
VMcL ©   (2003-06-02 02:34) [13]

По-вашему в Borland идиоты?

>>Fenik © (31.05.03 11:37)<< правильно написал


 
Evgeny ©   (2003-06-03 06:09) [14]

>panov © (01.06.03 23:13)
Ну и зачем в данном случае так усложнять?
Автор так и не привел код, а вы ломаете копья. Может быть он давно все сделал вот и не отзывается.


 
panov ©   (2003-06-03 11:42) [15]

>Evgeny © (03.06.03 06:09)

Это не усложнение.
Приведен лишь пример кода из Help.

90% вопросов отпадет, если немного подольше, нежели пара минут, поискать в справке Delphi.



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

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

Наверх




Память: 0.5 MB
Время: 0.033 c
8-96301
Might
2003-05-30 09:52
2003.09.29
Не могу нарисовать толстую линию, возникают проблемы.


14-96428
Lu
2003-09-10 14:05
2003.09.29
Еще одна головоломка


9-96041
Glusha
2003-03-26 02:45
2003.09.29
Поиск элемента в списке TList


14-96410
Дремучий
2003-09-11 11:04
2003.09.29
Почему из форумов нет ссылки на Список Анкет?


6-96316
Maks Realov
2003-07-31 14:02
2003.09.29
Как получить текущие параметры прокси, которые в IE соят?