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

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

Как можно сделать в 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]

Собственноручной отрисовкой итемов


Наверх

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