热情软件屋

 

VFP 3.0显示图片时发生内存不够的问题


编号:QA000002
建立日期: 1997年10月1日 最后修改日期:1997年10月1日
所属类别:

杨健:
    我使用中文 VFP 3.0 编写了一个人事管理软件,其中要显示人员照片,但是我在多次浏览不同的人员照片(约100次)后,图象就会显示得越来越慢,最终提示“内存不足”,我是将图象文件名链接在PICTURE属性中的,请问如何解决这个问题?在 VFP 3.0 中显示图象应注意哪些方面?

回答:

    我猜测你是在Windows 3.x下进行开发的。如果是这样,那么内存不足的原因就比较明确了。在Windows 3.x下,用于存储系统内部资源(如各种句柄、图形设备描述)的内存只有2个64K,所以如果一个程序过多地占用系统资源或在使用系统资源后没有释放资源都有可能使Windows出现你所说的症状,实际上这是因为2个64K用完了,即使你拥有再多的内存也解决不了问题,这是Windows 3.x的缺陷。除了上述症状外,一般在这种情况下如果你切换至程序管理器,你会发现图标已无法显示,汉字出现大量乱码。如果你使用的是中文版的Windows,出现类似问题的机会将数倍于英文版,我一直怀疑微软在汉化Windows时有严重的技术错误。这种情况很少出现在Windows 95中,因为Windows 95扩大了系统资源的存储区,并且采取了一些技术措施自动回收一部分系统资源。所以如果你的确使用的是Windows 3.x,可以考虑在Windows 95下运行软件,若症状消失,则问题可能在Windows或VFP方面。我对微软的站点进行了搜索,没有发现这方面的BUG报告,所以VFP出现问题的可能性不太大,当然不排除汉化VFP时加入了新的BUG。
    由于你没有提供程序代码,所以我们也不能排除你程序的问题。你可以仔细地检查一下代码,看有没有出现过度使用系统资源的情况。你说“将图象文件名链接在PICTURE属性中的”,我分析你大概是使用的Image控制,如果不是,请改用Image控制,因为这种控制比较节省内存,这是VFP 3.0 中显示图象应注意的一个问题。
     在没有找到问题根源之前,你也可以使用一种变通的解决方案。不要在每次浏览时都显示图片,而是提供一个按钮,如果用户对照片感兴趣时,按下按钮,就显示相应的图片,当记录移动时,自动关闭窗口。这种方法虽然没有你原来的方法好看,但更为实用。我们在进行人事管理方面的工作时,可能更注意人员的经历和学历等方面的内容,而不是每次都关心人的长相。采用此种方案既可以满足看照片的需要,又不至于使系统出问题。虽然有“一图胜千言”的说法,但对于人事系统不见得如此,而过多的使用图形是使程序变慢的“最佳”途径。当然如果你编写的是一个犯罪分子记录程序或电脑红娘软件,就另当别论了。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio