我开发了一个使用TScrollBox组件来生成“铁路布局”的程序。这条路线是由许多小人物组成的,每一个小人物都代表一段铁轨(根据铁路建模的思想)。
我注意到,对于相当小的数量,该软件的工作没有问题。但是执行各种调试测试,已经有3500个二进制文件,它开始以异常的方式运行,并与5000块程序不光彩地崩溃!
我想明确指出,该软件的第一个版本是在“”环境中使用"Delphi 5 Professional“开发的。我认为问题在于内存数量很小(最大3GB),不允许分配超过一定数量的内存,尽管粗略估计我可能至少分配了16000块。
然后在“Windows8.1专业版XE2”环境中,我尝试修改该软件以适应"Delphi X64“,生成64位代码,但上面描述的问题仍然存在。
在这一点上,我想知道这个问题是否存在于TScrollBox组件的可能限制中。是否有最大数量的组件可以放置在TScrollBox上?若然,是否有办法解决这个问题呢?
发布于 2022-06-24 12:06:56
这不是TScrollBox的限制,而是操作系统本身的限制。
窗口管理器施加的一个基本限制是,任何进程都不能创建超过10,000个用户或GDI对象。
因为您可能使用的是TWinControl后代,所以很可能达到了这个极限。
https://stackoverflow.com/questions/72733483
复制相似问题