Y
yandong_mars
Unregistered / Unconfirmed
GUEST, unregistred user!
循环调入一个图片800*600,100次后,占用了相当大的虚拟内存(143M) 代码中内存已经进行了释放,同事告诉我这是Delphi的问题,请问是真的吗?怎么手工给释放一下呢!?
代码如下
procedure TForm1.Button1Click(Sender: TObject);
var
BitMap1:TBitMap;
begin
BitMap1 := TBitMap.Create;
BitMap1.LoadFromFile('D:/Documents and Settings/Administrator/桌面/客_.bmp');
BitMap1.Dormant;
BitMap1.FreeImage;
Image1.Canvas.Draw(0,0,BitMap1);
BitMap1.ReleaseHandle;
BitMap1.Free;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
begin
for i:=1 to 100 do
begin
Label1.Caption := inttostr(i);
Application.ProcessMessages;
Button1.Click;
end;
end;
代码如下
procedure TForm1.Button1Click(Sender: TObject);
var
BitMap1:TBitMap;
begin
BitMap1 := TBitMap.Create;
BitMap1.LoadFromFile('D:/Documents and Settings/Administrator/桌面/客_.bmp');
BitMap1.Dormant;
BitMap1.FreeImage;
Image1.Canvas.Draw(0,0,BitMap1);
BitMap1.ReleaseHandle;
BitMap1.Free;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
begin
for i:=1 to 100 do
begin
Label1.Caption := inttostr(i);
Application.ProcessMessages;
Button1.Click;
end;
end;