Delphi 中大量Frame 在win98下出现的问题. 500 分(300分)

  • 主题发起人 主题发起人 YellowMoon
  • 开始时间 开始时间
Y

YellowMoon

Unregistered / Unconfirmed
GUEST, unregistred user!
我们正在开发一个大型的管理系统.
为了考虑到界面的统一和开发管理方便,我们使用了大量的Frame
通过一层层的继承,完成相应的自功能,然后将Frame放置在From里面.
这样在win2000里面没有问题.可是在win98里面当Frame多了的时候就会出现
A call to an OS function failed.
 
应该不是Frame的问题吧
 
frame占内存很大,能不用最好不用。
 
FRAME一次性不要用太多用完就释放
 
不可能是Frame的问题
你跟踪一下看是什么问题吧
 
要用时再创建,用完就释放,有可能是frame的问题.
哦,调用函数失败,是不是用了什么98不支持的api函数了.
 
我也不知道是为什么啊,在2000上好好的,到了98就不行了。

创建多了就会出这样的问题。
 
因為2000下的內存管理機制比98上的好多了!
 
不知你说的Frame多了是什么概念?
我现在在做的项目也用了大量的Frame,不过没有你说的那个问题
所以我觉得应该是其他方面的原因,建议你在98下搭好Delphi调试环境,看看究竟是什么原
因。 另外,Frame的多少跟操作系统应该没什么关系吧? 因为相信你不可能一次把所有Frame
所在的Form都创建出来的。
 
用Frame确实占内存,建议还是使用自定义组件
 
我们的系统里面用了很多的frame而且是很多嵌套的,而且很多都是通过很多层继承下来的。
所以很复杂,不知道有没有人在98的环境做过这样的工程吗?
 
的确是占用内存问题,我也曾经碰到这个问题,我不是很多Frame,
而是很多Form,并且这些Form是程序一运行就产生,结果内存一下就消耗没了,
也是弹出上面那个错误,后来我的窗体是动态生成的,就没有了这个错误。
 
动态也不行阿,我的界面上有很大东西,虽然的MDI的,可是还是会出现很多这样的问题,很讨厌.
 
It's not because of the lack of memory.
Frame control is kind of window-based control, large amount of such controls will
consume up the system resources on Win9X systems, such as hWnd, DC, Brush, Pen,
etc. That is why we must release a DC after GetDC calling and select back a GDI
Object into a DC after painting on it when programming under C/C++.
The Delphi object masks all such details in VCL, but we should always remember
what happened behind the curtain. So the only solution is to reduce your controls
in your Form, or else, no way.
Such problem seldom encounters on real 32-bit OS.
 
本人在编程过程中遇到过此问题。但不是你所说的那样。应该是98与2000的问题。最好自己
多试一试。[?]
 
我遇到过同样的问题,是Frame没有释放掉的原因。
 
有什么解决办法呢?
 
我一个Frame用多次(很频繁),当然不想每次都创建(建一个很花时间),就留下一个
以备以后用,有什么错呢?我很想知道应该怎么解决这个问题!
 
有谁解决这个问题,我也给分!
 
你说的问题,我在用QuickReport的时候碰到过,
所以现在,我基本上不用QuickReport
 
后退
顶部