Soweit ich das sehe, bei derartigem Durcheinander ohne Einrückung etc sehr schwierig, liegt das wohl daran, dass Du voc nicht initialisiert hast.
Du schreibst voc als ARRAY of TVokal. Damit hat voc aber, im Gegensatz zu z.B.
Delphi-Quelltext
1:
| voc : Array[0..100] of TVokal; |
noch keine Speicherplatzzuweisung. Jeder Zugriff auf voc führt dann zu unkontrollierten Speicheroperationen irgendwohin, wo für voc nichts freigehalten wurde. Schau Dir einfach die Hilfe für Dynamische Arrays - denn das ist ein ARRAY of ... - an. Da steht alles.
Toleranz ist eine Grundvoraussetzung für das Leben.