Hallo Andreas,
du provozierst mit der Konstanten NAMES ein Überdeckungsproblem - ändere den Code mal so ab:
Delphi-Quellcode:
var
s: TStrings;
// ...
begin
// ...
s := MovieList.Items[i].SubItems;
// with MovieList.Items[i].SubItems do
for j := Low(NAMES) to High(NAMES) do
begin
subNode := movies.item[i].selectSingleNode(NAMES(j));
if Assigned(subNode)
then s.Add(subNode.Text)
else s.Add('');
end;
// ...
Grüße vom marabu