# TComponentList Problem

TComponentList Problem

How to put in TComponentList more components than TComponentList max value ?

I succeeded to put in TComponentList about 148291876 components.

After that application showed me an error - List capacity out of bounds (148291876).

Thanks.
###### Who is Participating?

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Commented:
who needs so much components?
0
Senior developer, analyst and customer assistance Commented:
Not possible....
TcomponentList inherits from TList and the List property is an array [0..MaxListSIze-1] of pointer where MaxListSize = MaxInt div 16 and where MaxInt = High(Integer) -> (2^32)-1
So to have a larger TComponentList capacity you must create a TList descendent overriding its Capacity property using a larger constant (for example High(Int64)) and adding all needed properties stored in the hierarchy form Tlist to TComponentList (hard job guy?)...

Just for curiosity: can you answer meikl question? :)

F68 ;-)

0
Author Commented:
I want to put in TComponentList 500 (or more) milion forms and on form 810 tabsheets (or more) + 300 components (or more) per tabsheet.

Some problems for organization.

Thanks.
0
Author Commented:
As limit I need about 1.e+100 maximal components to put in TComponentList.

Thanks.
0
Commented:
the sense is really unclear,
which user handles tons of components

but you could organize it like

TList
|
- TComponentList
|
- TComponentList
|
- TComponentList
|
- TComponentList
|
- TComponentList
...

so you have
((2^32)-1)^(2^32)-1
possible entries

meikl ;-)

0

Experts Exchange Solution brought to you by