win98中只能运行20次!!!?莫名奇妙!!!

shuixin13 2002-01-13 08:56:44
在我的一个程序的FormShow中,
用了下面的代码
(Components[Y] as Timage).picture.Bitmap.Handle:=tong.Picture.Bitmap.Handle
可是在WIN98下,这个子窗体打开20 来次后,就会出现“Canvas does not allow drawing” 的提示,关闭后重打开也没事了,可是打开20来次后又不行了,WHY,我想破头皮也不知为什么!!!有大侠能告诉我吗???小弟先谢了

还有就是我在另一个窗体中放入了一个下拉列表框,可是也同样出现问题,也是打开
20来次后,报“form1.combobox1.string...”下面记不得了, 然后是“WIN API32...." 好奇怪,谁能帮我呀,

我用的是delphi5.0企业版,
我在delphi6.0中重编译过,也不行的,是不是我的程序有问题呀
...全文
98 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
largebeard 2002-01-17
  • 打赏
  • 举报
回复
free
shuixin13 2002-01-17
  • 打赏
  • 举报
回复
正如icesnowerls(ls)所说,我的方法也是fzzt.showmodal;fzzt.free;,在fzzt.showmodal;之后,fzzt.free;不会被执行,只到fzzt窗体被关闭后才能执行。
shuixin13 2002-01-14
  • 打赏
  • 举报
回复
在我的主窗体中,我用的是
fzzt:=tfzzt.create(application);
fzzt.showmodal;
在我的fzzt中的FormShow中,
用了下面的代码
(Components[Y] as Timage).picture.Bitmap.Handle:=tong.Picture.Bitmap.Handle

我已发现如 martinloyee(混到天长地久,睡到海枯石烂) 仁兄所说,是我的资源不够了,
可我如何做才能解决这个问题呢,请各位大侠帮忙了,
小弟我也尽力去试试吧,希望能有点头绪!!
icesnowerls 2002-01-14
  • 打赏
  • 举报
回复
加入Try...finally语句,在finally中释放创建的窗口。
fzzt:=tfzzt.create(application);
try
fzzt.showmodal;
...
finally
fzzt.free;
end;

hammer_shi 2002-01-14
  • 打赏
  • 举报
回复
好象Delphi本身就存在内存泄露问题。上次我们做一个大型的项目时就是那样。实时调用dll,
随后释放掉可是192M内存没用几次系统就报“内存不足”。你在实时生成调用时尤其要注意关闭前要释放掉该块!自己再检查一下吧!
长弓落日 2002-01-14
  • 打赏
  • 举报
回复
需要自己去free!
shuixin13 2002-01-14
  • 打赏
  • 举报
回复
我试出了一个解决办法,就是将 fzzt 设为AutoCreate, 以后要用是就用fzzt.showmodal,不要再 Create 了,这样会在程序启动时多花点时间,不过算是解决问题了,
我发现如是MdiChild 窗口在点击过关闭后,系统会自动释放资源,而普通窗口用了create、showmodal就说不定了
pdsinfo 2002-01-14
  • 打赏
  • 举报
回复
把源代码贴出来看看
shuixin13 2002-01-13
  • 打赏
  • 举报
回复
我用了20个TImage我的内存192M,那combobox1呢
dbpower 2002-01-13
  • 打赏
  • 举报
回复
你的应用中有多少个TImage????
martinloyee 2002-01-13
  • 打赏
  • 举报
回复
资源问题了,不够了。

5,402

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧