Einzelnen Beitrag anzeigen

Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

Problem mit DrawItem bei Listbox

  Alt 27. Feb 2007, 15:57
Hi,

ich möchte via DrawItem einer Listbox das aktuelle Lied markieren (der Hintergrund soll markiert werden). Nun habe ich aber das Problem, dass es bis zum nächsten Lied immer bleiben soll, auch wenn man ein anderes Item selektiert. Wie geht das ? Folgender Code macht verschiedene Sachen falsch, es ist allerdings bekomm ich die Fehlerbeschreibung hierbei nicht hin, da ich bisher noch kein Fehlerschema sehen konnte --> falls ihr den Fehler sowieso nicht sofort sehen solltet, könnt ihr es immernoch kurz selbst testen. TNoScrollListbox ist übrigens eine Ableitung einer TListbox und verhält sich genauso, bloß hat sie keine Scrollbar.
Delphi-Quellcode:
procedure TfrmMain.lbListDrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  with (Control as TNoScrollListBox).Canvas do
  begin
    if Index = last+1 then // last ist das zuletzt gespielte Lied
    begin
      Pen.Color := sLbLeft.Pen.Color;
      Brush.Color := sLbLeft.Brush.Color;
    end else
    begin
      Brush.Color := lbList.Color;
    end;
    FillRect(Rect);
    TextOut(Rect.Left + 2, Rect.Top, (Control as TNoScrollListBox).Items[Index]);
  end;
end;
  Mit Zitat antworten Zitat