Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > ListBox


Автор: -=::BlackCat::=- 28.2.2004, 02:56
Как зделать чтоб у TListBox разные Items разными цветами были?

Автор: DonPager 28.2.2004, 13:20
Если я не ошибаюсь то пример в стандартных экзамплах есть...
ежели не найдёшь готового примера , то мудри с OnDrawЧто-То

Автор: acp 29.2.2004, 01:09
Ставь обработчик на OnCustomDrawItem.
Там напиши
Код
ListView.Canvas.Font.Color := ...;

И для каждого итема в списке у тебя будет вызываться эта процедурка и ты можешь для каждого итема определять новый цвет.

Автор: -=::BlackCat::=- 1.3.2004, 01:09
Мне надо для TListBox!!!

Автор: x77 2.3.2004, 22:34
Код

procedure TForm1.FormCreate(Sender: TObject);
begin
 ListBox1.Style := lbOwnerDrawFixed;
 Randomize;
end;

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
 Rect: TRect; State: TOwnerDrawState);
begin
 with ListBox1.Canvas do begin
   Font.Color := Random ($FFFFFF);
   TextRect (Rect, Rect.Left, Rect.Top, ListBox1.Items [Index]);
 end;
end;

Автор: Pakshin A. S. 2.3.2004, 22:53
Когда-то здесь, на форуме, писал такое же, посмотри, если захочется копаться в старых темах..

Автор: -=::BlackCat::=- 3.3.2004, 02:52
x77

Спасибо за код, но вот вопросик, как мне зделать так чтоб цвет изменялся по Index`у?

Автор: x77 3.3.2004, 14:22
-=::BlackCat::=-, а каким образом он должен изменяться? ну, напиши, например, if Index = 3 then ... , и у тебя всегда четвёртая строка будет какого-то цвета.

Автор: -=::BlackCat::=- 3.3.2004, 14:25
Куда писать, очень прошу поделись кодом withstupid.gif

Автор: x77 3.3.2004, 15:04
Код

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
 Rect: TRect; State: TOwnerDrawState);
begin
 with ListBox1.Canvas do begin
   case Index of
     0: Font.Color := clRed;
     1: Font.Color := clGreen;
     2: Font.Color := clBlue
   else
     Font.Color := Random ($FFFFFF);
   end;
   TextRect (Rect, Rect.Left, Rect.Top, ListBox1.Items [Index]);
 end;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)