Ist das semantisch nicht korrekt ?
Njain, also korrekt ist es sogesehn schon,
aber würdest du solche Globalen nicht verwenden, dann währe dir z.B. aufgefallen, daß du in TStack auf die Form zugreifst, anstatt die Parameter zu nutzen.
Wenn man alle Daten korrekt übergibt, dann kommt man meistens ohne solche globalen Variablen aus.
PS: Eine Prüfung auf die Arraygrenzen fehlt noch.
Oder notfalls einfach die Compileroption für Indexprüfung aktivieren. (Projektoptionen > Bereichsprüfung)