Можно пойти двумя путями
1) В одном списке отображать заголовки(теги) песен, и создать второй список(невидимый), где в том же порядке будут пути к файлам. Тогда код будет типа такого:
Код:
procedure TListBox1.OnDblClick(Sender : TObject);
begin
if (ListBox1.ItemIndex>=0)and(ListBox1.ItemIndex<ListBox1.Items.Count) then
begin
StopPlaying;//остановить проигрывание
SongIndex := ListBox1.ItemIndex;//текущий номер песни
PlayFile(ListBox2.Items.Strings[ListBox1.ItemIndex]);//начать играть
end;
end;
В этом случае надо работать со списками параллельно.(Удалил файл из первого списка-удали и из второго);
2) Делать все через ListView. Тогда в первой колонке будут номера песен, во второй-заголовки, в третьей-путь, в четвертой-время. Третью колонку надо сделать шириной 0.
Тут надо не забывать, что перед тем, как записать данные в колонки 2-4, надо их создать.