Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Посоветуйте компонент, плейлист для музыки  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 2209
rgreat
2 мега сорцов. Не монструозно, ага.
Да хоть 10! Главное чтоб шустро и безглючно работало
11 сен 19, 02:06    [21968181]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте компонент, плейлист для музыки  [new]
rgreat
Member

Откуда:
Сообщений: 5441
white_nigger,

Картинка с другого сайта.


Такой плейлист делается на пару страниц кода в базовом листбоксе.
11 сен 19, 03:03    [21968183]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте компонент, плейлист для музыки  [new]
rgreat
Member

Откуда:
Сообщений: 5441
procedure TForm10.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
  CV : TCanvas;
  s  : string;
begin
  CV:=ListBox1.Canvas;

  CV.Brush.Color:=ListBox1.Color;
  CV.FillRect(Rect);

  CV.Font.Size:=8;
  CV.Font.Color:=clLtGray;
  CV.TextOut(Rect.Left+5,Rect.Top+2,ListBox1.Items[Index]);

  s:=StringReplace(Format('%2.0d:%2.0d',[random(15),random(60)]),' ','0',[rfReplaceAll]);
  CV.TextOut(Rect.Right-CV.TextWidth(s)-8,Rect.Top+2,s);

  if Index=ListBox1.ItemIndex then begin
    CV.Pen.Color:=$CCCCCC;
    CV.Pen.Style:=psSolid;
    CV.Rectangle(Rect.Left+3,Rect.Bottom-10,Rect.Right-55,Rect.Bottom-6);
    CV.Brush.Color:=clWhite;
    CV.FillRect(System.Classes.Rect(Rect.Left+4,Rect.Bottom-9,170,Rect.Bottom-6));
  end;

  CV.Font.Color:=$0000DFFF;
  CV.Brush.Style:=bsClear;
  CV.TextOut(Rect.Right-50,Rect.Top+14,StringOfChar('★',random(5)+1));


  CV.Pen.Color:=$777777;
  CV.Pen.Style:=psDot;
  CV.MoveTo(Rect.Left,Rect.Bottom-1);
  CV.LineTo(Rect.Right,Rect.Bottom-1);

  if odFocused in State then
   DrawFocusRect(CV.Handle,System.Classes.Rect(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom));
end;


И всего-то.

К сообщению приложен файл. Размер - 15Kb
11 сен 19, 04:11    [21968185]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте компонент, плейлист для музыки  [new]
rgreat
Member

Откуда:
Сообщений: 5441
Что-то я увлекся. :)

+
procedure TForm10.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
  CV : TCanvas;
  s  : string;
begin
  CV:=ListBox1.Canvas;

  CV.Brush.Color:=$444444;
  CV.FillRect(Rect);

  CV.Font.Size:=8;
  CV.Font.Color:=$00E4E4E4;
  CV.TextOut(Rect.Left+5,Rect.Top+2,'Two Steps From Hell - '+ChangeFileExt(ListBox1.Items[Index],''));

  s:=StringReplace(Format('%2.0d:%2.0d',[random(15),random(60)]),' ','0',[rfReplaceAll]);
  CV.TextOut(Rect.Right-CV.TextWidth(s)-8,Rect.Top+2,s);

  if Index=ListBox1.ItemIndex then begin
    CV.Pen.Color:=$CCCCCC;
    CV.Pen.Style:=psSolid;
    CV.Rectangle(Rect.Left+3,Rect.Bottom-10,Rect.Right-55,Rect.Bottom-6);
    CV.Brush.Color:=clWhite;
    CV.FillRect(System.Classes.Rect(Rect.Left+4,Rect.Bottom-9,170,Rect.Bottom-6));
  end else begin
    CV.Font.Size:=7;
    CV.Font.Color:=$00007E91;
    CV.TextOut(Rect.Left+5,Rect.Top+16,copy(AnsiUpperCase(ExtractFileExt(ListBox1.Items[Index])),2,10)+' :: 44 kHz :: 320 kBit :: '+((random(50)+7)/10).ToString+' Mb.');
  end;

  CV.Font.Size:=8;
  CV.Font.Color:=$0000DFFF;
  CV.Brush.Style:=bsClear;
  CV.TextOut(Rect.Right-50,Rect.Top+14,StringOfChar('★',random(5)+1));


  CV.Pen.Color:=$777777;
  CV.Pen.Style:=psDot;
  CV.MoveTo(Rect.Left,Rect.Bottom-1);
  CV.LineTo(Rect.Right,Rect.Bottom-1);

  if odFocused in State then
   DrawFocusRect(CV.Handle,System.Classes.Rect(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom));
end;


К сообщению приложен файл. Размер - 32Kb
11 сен 19, 04:34    [21968188]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте компонент, плейлист для музыки  [new]
Василий 2
Member

Откуда:
Сообщений: 792
Ну, это ведь как бывает. Сначала захочется драгндроп, потом чтоб тысячи элементов мгновенно грузились, потом вложенность, потом еще какие-нибудь прибамбасы. В итоге приходишь к тому, что сам делаешь половину того, что уже сделано в VTV.
11 сен 19, 10:46    [21968342]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте компонент, плейлист для музыки  [new]
rgreat
Member

Откуда:
Сообщений: 5441
Василий 2,

До сих пор обходился.
11 сен 19, 14:25    [21968563]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте компонент, плейлист для музыки  [new]
rgreat
Member

Откуда:
Сообщений: 5441
"тысячи элементов мгновенно грузились, потом вложенность," - это все элементарно реализуется без VTV.
11 сен 19, 14:42    [21968577]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте компонент, плейлист для музыки  [new]
rgreat
Member

Откуда:
Сообщений: 5441
и драгндроп тоже. :)
11 сен 19, 14:42    [21968578]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте компонент, плейлист для музыки  [new]
Василий 2
Member

Откуда:
Сообщений: 792
Вложенность со сворачиванием на листбоксе? Ну... снимаю шляпу тогда
11 сен 19, 18:36    [21968815]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте компонент, плейлист для музыки  [new]
rgreat
Member

Откуда:
Сообщений: 5441
Василий 2,

Чего там сложного то?
1-й элемент - альбом
10 под ним - песни. С небольшим отступом слева.

Немного по разному отрисовываются.

В альбоме нарисовать треугольничек свернуто/развернуто. Обработать клик.

А рисовать песни или нет - копеечный вопрос.
11 сен 19, 18:47    [21968823]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте компонент, плейлист для музыки  [new]
Василий 2
Member

Откуда:
Сообщений: 792
Так еще хранить иерархию. Не, это не rocket science конечно, но имхо должна быть веская причина, чтобы заниматься подобным тюнингом
12 сен 19, 10:30    [21969184]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Delphi Ответить