Also remember that some containers contain pointers. A pointer says nothing about the size of the data it's pointing to. For instance, the following object would seem simple:
struct MyStruct
{
char x;
TList *List;
}mystruct;
It's size will only be...3 bytes I believe? I don't know how many bytes it takes to store a TList pointer, but it's small, you get the idea. The problem is that TList might contain a list of 1000000 strings or other objects.
Just out of curiousity, do you mind saying why you are concerned with memory on those components? They seem very insignificant for a windows program. I wouldn't think even the minimum PC with requirements for Win95 would have any problems with adding one of those.
Chris