Hallo,
ich verstehe überhaupt nicht, was dein Code macht. Wenn der aktuell betrachtete Playlist-Eintrag nicht dem Dateiname im OpenDialog entsprichst, fügst du den Dateipfad hinzu, auch wenn dieser gegen Ende in der Playlist stehen könnte.
Ich würde das so irgendwie lösen:
Delphi-Quellcode:
function InPlayList(Playlist: TStringList; VideoName: string): Boolean;
var
i: Integer;
begin
Result := false;
for i := 0 to Playlist.Count - 1 do
begin
if VideoName = Playlist.Items[i] then
begin
Result := true;
break;
end;
end;
end;
// Aufruf:
if not InPlaylist(playlist, OpenDialog1.FileName) then
playlist.Items.Add(OpenDialog1.Filename);
Oder analog eben für mehrere Dateien.
Grüße, Matze
Edit: Das genau natürlich genauso mit einer ListBox. Da kannst du dann auch IndexOf nutzen, um zu prüfen, ob ein String enthalten ist.