Hay una directiva del compilador que controla el comportamiento. Ahora no recuerdo cual es... pero si buscas en la ayuda por "Range check" seguro la encontras...
De hecho, creo que es {$R+} y {$R-}.
Con el chequeo activado, elevará una excepción cada vez que trates de acceder a un elemento inexistente de una matriz o un string.
Hasta luego.
![Wink](http://www.clubdelphi.com/foros/images/smilies/wink.gif)