例如ScrollBox之类的容器可以放入多少个控件(20分)

  • 主题发起人 主题发起人 kane
  • 开始时间 开始时间
K

kane

Unregistered / Unconfirmed
GUEST, unregistred user!
as the title
受什么限制
 
as many as a tlist can hold
 
我放了大约400个Panel进去就报乌七八糟的错了,不会这么少吧
 
As many as it can bare.
What do u want to do?
 
All windowed controls consumes system resource. So, use as less
windowed control as possible.
 
理论上是可以有2G个,但每个Control都会占用Windows资源,比如窗口句柄、Device Contexts等,所以400个Panel耗尽资源是很正常的,你可以打开Windows的系统监视器,看看创建Control时资源的减少情况,一般来所Office、Delphi之类的大家伙会吃掉很多很多资源。
 
但是例如ACDSee之类的看图程序里可以放好象可以超过400个对象
不知如何实现,请教各位
 
没有人回答吗:(
 
TList可以方MaxInteger div 16个Pointer. 我用下列代码建立了1200个TPanel
没发现任何问题(把TPanel换成TButton也一样).

procedure TForm1.FormCreate(Sender: TObject);
var
i, j: integer;
APanel: TPanel;
begin
for i := 1 to 40 do for j := 1 to 30 do
begin
APanel:=TPanel.create(self);
APanel.BoundsRect:=Rect(i*20,j*20,(i+1)*20,(J+1)*20);
APanel.Caption:=IntToStr(i*j);
APanel.Parent:=self;
end;
end;

 
在上例的基础上加上了一个TScrollBox, 并将上例的Parent语句改写成:
APanel.Parent:=ScrollBox1;
结果: 一点问题没有, 窗口最大化,最小化,正常,移动...,全部显示正常.

 
谢谢各位的拔刀相助,我现在用的是赛扬333,128M好像也没什么事情了,
可是我以前用的是200MMX,32M,就是出问题,是不是和内存有关,但是
例如ACDSee怎么可以显示那么多的图片呢
 
理论上可放 huizhang说的那么多
实际上看你的内存够不够大, 这当然与你用的是什么草做系统有关

问题 end
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
835
SUNSTONE的Delphi笔记
S
S
回复
0
查看
765
SUNSTONE的Delphi笔记
S
D
回复
0
查看
824
DelphiTeacher的专栏
D
后退
顶部