Delphi-Quellcode:
setlength(Cols4,15);//<----???? wird speicehr belegt
Cols4:=Cols41;
setlength(Cols4,15);//<---- wird neuer belegt
Genau das ist das Problem.
Wenn du ein SetLength mit exakt der gleichen Größe machst, wird einfach nur neuer Speicher reserviert und der Alte nicht freigegeben → Voilà! Unser Speicherleck!