Außerdem wird FileName nicht gesetzt.
Getippt und zur Demonstration nicht nötig.
Denke jeder weis was gemeint ist.
Mir meldet Eurekalog in dieser Zeile 30 Memory Leaks
SplitPath.DelimitedText := ExtractFilePath(Files[IntI - 1]);
Files ist ein array of String.