![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как можно сделать в LIstBox текст по центру. [D7, XP]
wahnsinng © (2007-03-13 15:09:00)Как можно сделать в LIstBox текст по центру?
Джо (2007-03-13 15:56:00) [1]> ListBox1.Canvas. FillRect (Rect);
-> FillRect (Rect);
Джо (2007-03-13 15:55:00) [2]Примерно так (Style := lbOwnerDrawFixed):
// обработчик OnDrawItem
begin
with TListBox(Control).Canvas do
begin
if odSelected in State then
begin
Brush.Color := clActiveCaption;
Font.Color := clHighlightText;
end
else
begin
Brush.Color := clWindow;
Font.Color := clWindowText;
end;
ListBox1.Canvas. FillRect (Rect);
TextOut((Rect.Right div 2) - (TextWidth(TListBox(Control).Items[Index]) div 2),
Rect.Top,TListBox(Control).Items[Index]);
end;
end;
Это, собственно, совет [1], просто у меня готовый код как-раз был под рукой :)
Elen (2007-03-13 15:46:00) [3]
> зачем сзади-то дополнять пробелыми?:)
Для отчета! Чтоб наверняка :)
Elen (2007-03-13 15:45:00) [4]
> default © (13.03.07 15:43) [3]
Совершенно верно. :) Это просто один из вариантов. Еще вариант взять другой компонент, позволяющий такое.
default (2007-03-13 15:44:00) [5]Elen © (13.03.07 15:39) [2]
зачем сзади-то дополнять пробелыми?:)
default (2007-03-13 15:43:00) [6]Elen © (13.03.07 15:39) [2]
это если с точностью до пробела
самостоятельная отрисовка даст лучший эффект
Elen (2007-03-13 15:39:00) [7]
> wahnsinng © (13.03.07 15:09)
дополнять каждый итем пробелами спереди и сзади до нужной длины.
Аноним (2007-03-13 15:35:00) [8]Собственноручной отрисовкой итемов