Форум: "Основная";
Текущий архив: 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
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c