|
#1
|
||||
|
||||
PLayList
А какой компонерт лучше всего использовать для PlаyList?
|
#2
|
||||
|
||||
Если без сторонних компонентов, то TListBox
|
#3
|
||||
|
||||
А как можно в TListBox сденать так что бы при нажатии на определённую строку воспроизвадился определённый трэк?
|
#4
|
|||
|
|||
Filename:=Listbox.items.strings[listbox.itemindex]
|
#5
|
||||
|
||||
Спасибо за помощ!
|
#6
|
|||
|
|||
А какие есть сторонние компоненты для создания PlayList`a
|
#7
|
||||
|
||||
Незнаю насчет сторонних компонентов, но TListBox-примитивно. Если хочешь, чтобы выводились заголовки а не путь то юзай TListView(там пониже тема есть) или создавай свой компонент(точней доделывай готовый)
|
#8
|
|||
|
|||
Возми TListBox (там легко свою отрисовку делать, но это на будущее).
Сделай свой класс, например: Код:
type TPlayListItem = class private FTitle : String; FAuthor : String; FFileName : String; public constructor Create(AFileName : String); virtual; property Title : String read FTitle; property Author : String read FAuthor; property FileName : String read FFileName; end; constructor TPlayListItem.Create(AFileName : String); virtual; begin inherited; FFileName := AFileName; // здесь заполняются остальные свойства, типа название и автор. end Внутри программы, когда добавляешь треки в список, создаешь экземпляр вышеописанного класса и добавлешь в ListBox с помощью AddObject: Код:
procedure TForm1.AddFile(AFileName : String); var APlayListItem : TPlayListItem; begin APlayList := TPlayList.Create(AFileName); ListBox1.Items.AddObject('',APlayListItem); end; А вот теперь в ListBox'е за счет ручной отрисовки в зависимости от какого-либо параметра выводишь то, что надо из соответсвующего прицепленого к итему класса: Код:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var AItem : TPlayListItem; ABuf : String; begin AItem := ListBox1.Items.Objects[Index]; Case PlayListMode Of 1 : ABuf := ExtractFileName(AItem.FileName); // имя файла 2 : ABuf := AItem.Title; // название трека 3 : ABuf := AItem.Author + ' - ' + AItem.Title; // автор и название трека End; Control.Canvas.TextOut(Rect.Left,Rect.Top,ABuf); end; ЗЫ. Не забудь соотв. стиль у листбокса поставить. ЗЗЫ. Здесь простейшая отрисовка без учета состояния позиции и всяких других извращений. Дальше сам копай. |