color of SELECTED item in listbox

Hey all

Using the following code snippet, everything seems Okay :

void __fastcall TMainForm::ListBDrawItem(TWinControl *Control,
                     int Index,  TRect &Rect, TOwnerDrawState State) {
TCanvas *pCanvas = ((TListBox *)Control)->Canvas;

  if (State.Contains(odSelected))  // if selected
    ListB->Canvas->Brush->Color = clYellow;  // highlight color
  else  // if normal
    ListB->Canvas->Brush->Color = ListB->Color;  //normal color

  pCanvas->Font->Color = (TColor)(ListB->Items->Objects[Index]);
  pCanvas->TextOut(Rect.Left, Rect.Top,
                        ((TListBox *)Control)->Items->Strings[Index]);


BUT - when selecting different items in the listbox, an ugly rectangle
is left around part of  the previously selected item.
The rectangle-lines are erased around the text, but if the text do not
fill a complete line in the listbox, the "text-free" area continues to
have the remainings from the rectangle.

How do I avoid this ?

Best regards