...create colored items in a TListBox?

Author: Rainer Kümmerle
Homepage: http://www.thinklazy.de

Category: VCL

procedure TForm1.FormCreate(Sender: TObject);
begin
  
//Or set this property in the object inspector
  //Oder im Objekt Inspektor einstellen
  
ListBox1.Style := lbOwnerDrawFixed;
end;

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  with 
Control as TListBox do
  begin
    
Canvas.FillRect(Rect);
    Canvas.Font.Color := TColor(Items.Objects[Index]);
    Canvas.TextOut(Rect.Left + 2, Rect.Top, Items[Index]);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  
ListBox1.Items.AddObject('Red Item', Pointer(clRed));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  
ListBox1.Items.AddObject('Green Item', Pointer(clGreen));
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base