ListBox i itemy

0

Wiem, że to już pewnie było, ale nigdzie nie mogę znaleźć :(
Jak zmienić kolor czcionki określonego itema w ListBox?

Np. czcionka w całym listBoxie jest czarna, a ja chcę, żeby np. item trzeci miał czerwoną czcionkę

0

OnDrawItem

0

OnDrawItem

Ale co z tym?

Zmieniam style na OwnerDrawFixed(czy jakoś tak) i robię w tym zdarzeniu:

if index=2 then listBox1.font.color:=clRed;

Ale albo nic się nie pokazuje w ListBox, albo to w ogóle nie działa...

0

OnDrawItem

Ale co z tym?

strawdzasz, cy to ten item...

then
  ListBox1.Canvas.Font.Color := clRed;
0

strawdzasz, cy to ten item...

then
  ListBox1.Canvas.Font.Color := clRed;

No ręce opadają. Co ja robię źle?

Mam na formie button i listBox.
W listboxie mam 4 itemy i styl na lbOwnerDrawFixed

Kod buttona:

(i to zmienna globalna - integer na początku ma wartość 0)

if i=listBox1.Count-1 then i:=0 else i:=i+1;
 ListBox1DrawItem(listBox1, i, listBox1.ItemRect(i), []);

I procedurka:

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
 if listBox1.ItemIndex=i then listBox1.Canvas.Font.Color:=clRed else listBox1.Canvas.Font.Color:=clBlack;
end;

Źle wywołuje DrawItem, czy co... Ja już nie wiem...

Oczywiście po wciśnięciu buttona, czerwony kolorek ma przejść na item niżej, a reszta ma być czarna.

W ogóle listBox po uruchomieniu jest pusty. Tzn. są na itemach tylko krawędzie prostokątów(tych od zaznaczania), ale żadnej konkretnej linijki nie widać

1 użytkowników online, w tym zalogowanych: 0, gości: 1