Карта сайтаСсылкиКонтакты

Как изменить цвет фона на разных строках в TListBox

PDF Печать
Статьи

После того, как Вы опустите TListBox на форму, Вы должны изменить свойство Style у TListBox на lbOwnerDrawFixed. Если Вы не измените свойство Style, событие OnDrawItem не будет вызываться.

Поместите следующий код в событие OnDrawItem Вашего ListBox:


procedure TForm1.ListBox1DrawItem
   (Control: TWinControl; Index: Integer;
   Rect: TRect; State: TOwnerDrawState) ;
var
   myColor: TColor;
   myBrush: TBrush;
begin
   myBrush := TBrush.Create;
   with (Control as TListBox).Canvas do
   begin
     if not Odd(Index) then
       myColor := clSilver
     else
       myColor := clYellow;

     myBrush.Style := bsSolid;
     myBrush.Color := myColor;
     Windows.FillRect(handle, Rect, myBrush.Handle) ;
     Brush.Style := bsClear;
     TextOut(Rect.Left, Rect.Top,
             (Control as TListBox).Items[Index]) ;
     MyBrush.Free;
   end;
end;

 

Добавить комментарий


Защитный код
Обновить