Listbox, canvas, mrówki

0

Witam.

Mam listboxa ustawionego na lbOwnerDrawVariable i maluję sobie po nim w onDrawItem.
Wszystko ładnie pięknie, ale niestety, gdy dany item łapie focusa, pojawiają się dookoła niego czarne kropki (mrówki) i psuje to cały efekt. Próbowałem dość prymitywnej metody: W OnMouseDown ustawiałem focusa na inny komponent i wszystko wtedy działa ładnie pięknię, ale wolę tego uniknąć. Chciałbym aby listbox miał focusa, ale bez widocznych mrówek.

Szukałem w internecie i znalazłem funkcję DrawFocusRect ale albo ja robię coś źle, albo to nie działa :/

Kod:

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
with Control as TCustomListbox do
begin
if odSelected in State then
begin
//Canvas.FillRect(Rect);
Canvas.Brush.Color :=clskyblue ;
Canvas.DrawFocusRect(Rect);
end;
//Dalsze malowanie...
end;
end;

Proszę o pomoc i o wskazówki :)

0

bylo juz kiedys omowione.
na koncy po namalowaniu wszystkiego dodaj

]
if odFocused in State then ListBox1.Canvas.DrawFocusRect(Rect);
0

Bardzo dziękuję :)

Działa jak należy. Pozdrawiam.

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