TBitmapScanlines is only valid if TIEBitmap.Location=ieTBitmap, in other cases it is invalid. You are better to use TIEBitmap.Scanline, which supports all locations.
When TIEBitmap.Location=ieTBitmap then TIEBitmap.Scanline returns TBitmapScanlines anyway.