当前位置:主页>仓库管理软件> 列表

为什么内存一直在增长??? 找小企业财务管理软件

库存管理软件版1楼: 大家看看我这段代码有问题吗?为什么内存一直在增长????
procedure TForm1.Timer1Timer(Sender: TObject);
var
fDoorBmp:TBitMap;
begin
fDoorBmp:=TBitMap.Create;
fDoorBmp.LoadFromFile(''DoorInvalid.BMP'');
Image1.Picture.Bitmap:=fDoorBmp;
fDoorBmp.Free;
end;

2楼: 代码一直执行,不断的加载图片,所以内存会增加啊! 如简单进销存管理软件

3楼: 正确的写法
IF 文件存在
Image1.Picture.Bitmap.LoadFromFile(''DoorInvalid.BMP'');

另一写法
....
begin
fDoorBmp:=TBitMap.Create;
fDoorBmp.LoadFromFile(''DoorInvalid.BMP'');
Image1.Picture.Bitmap.Assign(fDoorBmp);
..........

4楼: 正确的写法
IF 文件存在
Image1.Picture.Bitmap.LoadFromFile(''DoorInvalid.BMP'');

另一写法
....
begin
fDoorBmp:=TBitMap.Create;
fDoorBmp.LoadFromFile(''DoorInvalid.BMP'');
Image1.Picture.Bitmap.Assign(fDoorBmp);
..........


这两种方法我都试过了,但内存还是一直在增长,是不是还有其它办法呀???

5楼: 你的时间器太快了
最前加一句
Timer1.Enabled:=false;
fDoorBmp:=TBitMap.Create;
.......

Timer1.Enabled:=true;
end;

6楼: 还是不行呀,怎么回事呀???

库存管理软件版7楼: 直接用Image1.Picture.Bitmap.LoadFromFile(''DoorInvalid.BMP'');

8楼: Image1.Picture.LoadFromFile(''DoorInvalid.BMP'');

9楼: 试过了,还是不行

10楼: 看看别的地方,光这段没什么问题

11楼: 代码就这些了,我也觉得很奇怪,但内存就是缓慢增长

12楼: 你把timer1的时间间隔改大一点! 如小企业财务管理软件

13楼: 我已经把原来的一秒该为三秒了,但还是一样,会不会是Image1控件的问题?????

库存管理软件版14楼: 把变量定义为private
var
fDoorBmp:TBitMap;
例如在formshow中创建
fDoorBmp:=TBitMap.Create;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
fDoorBmp.LoadFromFile(''DoorInvalid.BMP'');
Image1.Picture.Bitmap:=fDoorBmp;


end;

formclose时释放
fDoorBmp.Free;

15楼: 这样的话增长得更快,fDoorBmp没有释放

16楼: 你的DELPHI什么版本啊,我这可不会有你这样情况的啊

17楼: delphi7.0

18楼: 多人接受答案了。

19楼: 这是delphi里面一个奇怪的现象
要先释放对象里面的Bitmap,然后再释放对象