This may be classed as a DelphiX question but it does also pertain to general so I'll stick it here (plus people tend to take more notice of the general area).Anyway...

I am attempting to create a sprite object that allows me to create a sprite with frame count info and image data and compile it into one object. The only problem is that I am creating many of these objects (hundreds!) and because each has at least one or more TDirectDrawSurfaces (a Surface for each animation type,{stand, walk , idle, etc}, I am worried about memory problems. I don't even know how much a TDirectDrawSurface takes up and SizeOf returns a size of 4 bytes for any object it is given (I think it is the size of the address, 32 bits, is this right). Anyway can anyone give me any pointers on ensuring minimum memory overhead. I would prefer to use a surface fo every animation but I guess that would be a bit much. What say you? Please let me know if I have explained this poorly and I will try to write it more clearly. Here's is my TSprite definition

type
TAnimation = Class(TObject)
FrameWidth: Integer;
FrameHeight: Integer;
FrameCount: Integer;
Surface: TDirectDrawSurface;
constructor Create etc
destructor Destroy etc
end;

type
TSprite = Class(TObject)
Anims: Array Of TAnimation;
FootprintX: Byte;//How many tiles it will take up on X axis
FootprintY: Byte;//How many tiles it will take up on Y axis
constructor Create etc
destructor Destroy etc
end;