Ok I've been fuming over this problem for about 3 hours now, so I figured it was time to swallow my pride and ask in here.

I'm make a very basic 2d map editor (for a game I'll hopefully get around to) and it's going ok so far, except for one thing.
When I try:

ImageList.Add('bitmapfile', nil);

Only the top row of the bitmap gets saved to the ImageList (I've confirmed by 'watching' the ImageList.Count property).
The bitmap is 384x128 (tiles are 64x64) and it's getting drawn into a TDrawGrid that's 512x512 (8x8 tiles) square. I have the relevant settings to allow 64x64 tiles in the ImageList and I've also set the AllocBy to 64 so that it can theoretically store the 8x8 tiles required for the largest bitmaps.

I've also tried the Read/WriteComponentResFile option but that keeps crashing the program.

I need to add the images in real time because they will need to be rotated and there'll be 4 times the images to save them in all rotations.

I'd prefer not to use DelphiX (or the like) at the moment since it's only a basic project and I'd like to keep it as simple as I can.