@capo,
ich hab mir das (aus eigenem Interesse) noch mal angeschaut.
Wenn ich deinen Source-Code richtig interpretiere , dann möchtest du, daß der Hintergrund
- $D4B569 ist, wenn es sich um einen selektierten Eintrag handelt
- $817161 ist, wenn es sich um einen unselektierten Eintrag mit ungeradem Index handelt
- clWhite ist, wenn es sich um einen unselektierten Eintrag mit geradem Index handelt
Dann könnte man den Code so gestalten.
Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
const
bkclr:Array[boolean,boolean] of TColor=((clWhite,$817161),($D4B569,$D4B569));
begin
with (Control as TListBox).Canvas, Rect do begin
Brush.Color:=bkclr[odSelected in state, Odd(index)];
TextRect(Rect,Left+2,Top+1,Items[index]);
if odFocused in State then DrawFocusRect(Rect);
end;
end;
DrawFocusRect muß dann aufgerufen werden wenn odFocused in State ist (nicht odSelected)