Ich meinte, dass du zu jeder Zeile von CompNames auch eine in FieldNames brauchst.
Dadurch kennt die Schleife die passende Spalte zu jedem Edit.
Ich habe mir gerade deine
UNIT gesaugt -> Du legst vor der Schleife die Länge des Arrays nicht fest -> Es knallt also eine Zeile früher.
SetCount muss unbedingt vor der Schleife auf 0 gestzt werden genau wie Die Länge des Arrays der Anzahl von CompNames entsprechen muss.
Delphi-Quellcode:
SetCount := 0;
// Arraylänge auf ANzahl der TEdits
SetLength(SetVals, CompNames.Count);
Ansonsten befindet sich SetCount hier außerhalb des Arrays.
SetVals[SetCount] := Text;