Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

JvPlayList (TListBox) прорисовать время как в WMP [D7, WinXP]


Valera ©   (2005-07-19 23:02:00) 

Возможно ли сделать прорисовку времени после обрезания текста как это реализовано в Windows Media Player? Код который я использую реализует только правильное обрезание текста.
Можно ли его дополнить?
var
 OldColor: TColor;
 TempRect: TRect;
begin

TempRect:= Rect;

TempRect.Top:= TempRect.Top + 1;
TempRect.Left:= TempRect.Left + 3;

 with (Control as TJvListBox).Canvas do
 begin
   FillRect(Rect);
      if JvPlaylist1.FStatPoint = JvPlaylist1.Items.Objects[Index] then
        begin
         OldColor:= Font.Color;
         Font.Color:= clBlue;
 // здесь выводим текст с обрезанием по правому краю (три точки в
 // конце, если текст не помещается)

 DrawTextEx(Handle, PChar((Control as TJvListBox).Items[Index]),
 Length((Control as TJvListBox).Items[Index]), TempRect, DT_WORD_ELLIPSIS, nil);

         Font.Color:= OldColor;
        end
        else

 DrawTextEx(Handle, PChar((Control as TJvListBox).Items[Index]),
 Length((Control as TJvListBox).Items[Index]), TempRect, DT_WORD_ELLIPSIS, nil);

   end;


Antonn   (2005-07-21 09:02:00) [1]

Valera   (20.07.05 21:17) [2]
ну и рисуй время с другой стороны

var Lenght_time:integer;
   Time_str:string;

//// конце, если текст не помещается)
// далее замени
Time_str:='00:00'; //
Lenght_time:=(Control as TJvListBox).canvas.textwidth(Time_str);

DrawTextEx(Handle, PChar((Control as TJvListBox).Items[Index]),
Length((Control as TJvListBox).Items[Index]),classes.rect( rect.left+3,rect.top,rect.right-Lenght_time-1,rect.bottom), DT_WORD_ELLIPSIS, nil);

(Control as TJvListBox).canvas.textout(rect.right-Lenght_time-3,rect.top+(rect.bottom-rect.top-(Control as TJvListBox).canvas.textheight('0')) div 2,Time_str);


Valera   (2005-07-20 21:17:00) [2]

Antonn ©   (20.07.05 09:28) [1]
попробуй в текст добавлять @#$!+-/*
так, ради проверки...

Добавляется все кроме /* если добавлять в имя файла, если добавлять через процедуру выше - добавляется все. У меня отображается только имя файла без расширения(путь хранить в структуре привязанной к строке), хотелось бы добавить время проигрывания если возможно.


Antonn   (2005-07-20 09:28:00) [3]

попробуй в текст добавлять @#$!+-/*
так, ради проверки...


Наверх

Титульная страница Поиск, карта сайта Написать письмо