W webwalker Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-08 #1 触摸屏系统,每个窗口有一些大的bmp贴图(最大的背景图片有1.4M),最多同时打开4个窗体,起初打开四个窗体时占用内存不到30M,经过一番窗体切换后,占用的内存竟然有100多M,按道理说,在窗体释放后,其拥有的控件会被释放,难道内存中的图片没有被释放?还有,有没有其他更好的解决方式?
触摸屏系统,每个窗口有一些大的bmp贴图(最大的背景图片有1.4M),最多同时打开4个窗体,起初打开四个窗体时占用内存不到30M,经过一番窗体切换后,占用的内存竟然有100多M,按道理说,在窗体释放后,其拥有的控件会被释放,难道内存中的图片没有被释放?还有,有没有其他更好的解决方式?
W webwalker Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-08 #2 触摸屏系统,每个窗口有一些大的bmp贴图(最大的背景图片有1.4M),最多同时打开4个窗体,起初打开四个窗体时占用内存不到30M,经过一番窗体切换后,占用的内存竟然有100多M,按道理说,在窗体释放后,其拥有的控件会被释放,难道内存中的图片没有被释放?还有,有没有其他更好的解决方式?
触摸屏系统,每个窗口有一些大的bmp贴图(最大的背景图片有1.4M),最多同时打开4个窗体,起初打开四个窗体时占用内存不到30M,经过一番窗体切换后,占用的内存竟然有100多M,按道理说,在窗体释放后,其拥有的控件会被释放,难道内存中的图片没有被释放?还有,有没有其他更好的解决方式?
W webwalker Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-10 #6 图片文件是保存在硬盘中的,创建窗体时载入。 我也怀疑是没释放干净,但是当一个Form被Close&Free掉以后,他上面的控件难道不是也被释放掉了吗。 接触过类似程序的朋友还请多多帮忙。
W webwalker Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-10 #7 Jpeg图片的载入可能会比Bmp慢,他需要解压,界面切换时会图片载入的慢些闪烁的利害。
打 打破沙锅问到底之DFW Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-10 #8 你的触摸屏用什么做的?asp/autoware?
F fengyakun_2003 Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-10 #10 你可以试一下在窗体的Paint事件中把图片画出来,这样占用的内存资源较少,同时没有切换窗口时的闪动问题。
W webwalker Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-11 #11 问题找到了,不过很困惑,delphi的窗体关闭是如何释放内存的,Free、FreeAndNil、caFree都好像不太管用,创建窗体(即使是干净的没有几个控件的)被关闭后也是不能回收被占用的内存,是与Windows内存管理方式有关吗? 好像不创建实体的方式倒是可以如: With TForm1.Create(nil) do begin ShowModal; Free; end; 为什么?上面的问题就是被改成这样的方式,每个窗体图片所占用内存才还给我的。
问题找到了,不过很困惑,delphi的窗体关闭是如何释放内存的,Free、FreeAndNil、caFree都好像不太管用,创建窗体(即使是干净的没有几个控件的)被关闭后也是不能回收被占用的内存,是与Windows内存管理方式有关吗? 好像不创建实体的方式倒是可以如: With TForm1.Create(nil) do begin ShowModal; Free; end; 为什么?上面的问题就是被改成这样的方式,每个窗体图片所占用内存才还给我的。