Delphi-Quellcode:
for x := 0 to Length(Text) do
^^^
und auch
Delphi-Quellcode:
for y := 0 to Length(Letters[x].Lines) do
^^^^^^^^^^^^^^^^^^^^^^^^
Wenn du auf nichtexistierende Speicherstellen zugreifst, dann kommt es darauf an, was es an dieser Stelle gibt ...
> entweder nix und es knallt
> anderer und derzeit nichtverwendeter Speicher ... hier passiert nix (eventuell)
> anderer verwendeter Speicher ... hier veränderst du fremde Variablen
Schalte doch mal in deinen Projektoptionen die Überlauf- und Bereichsprüfungen an.
Zur Fehlersuche ist das vollkommen angebracht (auch wenn es das Programm "etwas" langsamer machen kann).