![]() |
|
|
#1
|
||||
|
||||
|
А какой компонерт лучше всего использовать для 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;ЗЫ. Не забудь соотв. стиль у листбокса поставить. ЗЗЫ. Здесь простейшая отрисовка без учета состояния позиции и всяких других извращений. Дальше сам копай. |