Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];




Вниз

строка в ListBox как в плей-листе WinAmp 


petyun   (2002-01-17 10:04) [0]

Уважаемые мастера! Подскажите, пожалуйста, как сделать такую штуку: в строках ListBox хочется слева поместить один текст, а справа - другой (как в WinAmp слева-название, справа-время).
Причем это должно быть в одной строке.
Т.е. как узнать ширину текста, сколько необходимо пробелов, чтобы
все правильно разместить?



olban   (2002-01-17 11:24) [1]

Используй TStringGrid, можно сколько угодно столбцов сделать, а в ListBox не получится выровнять текст, так как, в основном, шрифты имеют разную ширину символов.



valery_f   (2002-01-17 11:35) [2]

Если ListBox в стиле OwnerDraw, то можно рисовать че угодно :), в т.ч. время справа. По-моему не так уж сложно...



Gennady   (2002-01-17 11:51) [3]

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var s, s1, s2: string;
i: integer;
H: HDC;
begin
s:=TListBox(Control).Items[Index];
i:=Pos("*", s);
s1:=Copy(s, 1, i-1);
s2:=Copy(s, i+1, Length(s)-i);
h:=TListBox(Control).Canvas.Handle;
TListBox(Control).Canvas.FillRect(Rect);
DrawText(H, PChar(s1), Length(s1), Rect, DT_LEFT or DT_VCENTER);
DrawText(H, PChar(s2), Length(s2), Rect, DT_RIGHT or DT_VCENTER);
end;

как-нибудь так. здесь * - это разделитель между левой и правой частью строки.
только, как сказал valery_f "Если ListBox в стиле OwnerDraw".



TonnyS   (2002-01-17 12:54) [4]

http://delphi.vitpc.com/treasury/listbox.htm




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.049 c
6-8958            DenKop                2001-11-08 00:43  2002.02.04  
Сообщения Windows


1-8858            Chak                  2002-01-19 15:48  2002.02.04  
Как убить DLL-ку, находящуюся в памяти?


1-8855            asdf                  2002-01-20 23:36  2002.02.04  
Как сделать так, чтобы один из Tabsheet-ов в pagecontrole стал disabled?


3-8783            Андре                 2002-01-03 15:17  2002.02.04  
SQL Monitor


4-9033            Mr.Death              2001-11-22 08:59  2002.02.04  
Как перехватить вперед системы сочетание Сtrl+Alt+Del из под WIN2000/XP