@Tondose you made my day! Danke, das Script läuft und es lag daran. @shorty.xs schau mal, wir kommen vorwärts

Mit den Messageboxen leuchtet mir jetzt ein, da hätte ich auch selbst drauf kommen müssen. Klappt wunderbar über Systemlog und durch IntToStr kann der index auch dort ausgegeben werden.
Jetzt steh ich noch auf dem Schlauch warum da nochmal ein begin und end; hinmusste. 
Gelesen hatte ich das Delphi Basics : Begin command aber entweder nicht verstanden oder unter …“da steht ja ein begin und end” … als erledigt abgehakt. Oder ist das erste begin überflüssig ?
Hier noch das finale Script
var
i: integer;
Cue: string;
Item: IPlaylistItem;
begin
CurrentPlaylist.BeginUpdate;
try
for i:= 0 to CurrentPlaylist.GetCount -1 do
begin
Item:= CurrentPlaylist.GetItem(i);
if Item.GetItemType = pitShow then begin
Factory.CreateMetadataHandler(Item.AsFile).ReadNativeTags;
Cue:= IFilePlaylistItem(Item).GetFilename + '.cue';
Item.GetCueData.LoadFromCueSheet(Cue);
SystemLog(Cue);
SystemLog('Track '+IntToStr(i)+'|Cuesheet loaded|'+Cue);
end;
end;
finally
end;
CurrentPlaylist.EndUpdate;
end.