Der Stack-Überlauf ist einfach zu erklären, wenn man sich solche Code Zeilen wie diese anschaut:
Delphi-Quellcode:
for i:=1 to laenge do
data[i]:=strtoint(form1.Memo1.Lines.Strings[i-1]);
und sich die Deklaration von data "danebenlegt":
var data: array of integer;
Data ist ein dynamischer Array und beginnt deshalb beim Index 0 (wie
alle dyn. Arrays bei Delphi) und läuft bis laenge-1. Wenn man also im letzten Durchlauf der Schleife auf data[laenge] zugreifen will, kommt ein (berechtigter) Fehler, weil es dieses Element nicht mehr gibt.
MfG
Binärbaum