Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.064 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Rahmen um Auswahl in Listbox entfernen

  Alt 11. Okt 2007, 11:16
@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)
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat