Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit DrawItem bei Listbox (https://www.delphipraxis.net/87355-problem-mit-drawitem-bei-listbox.html)

Nils_13 27. Feb 2007 14:57


Problem mit DrawItem bei Listbox
 
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;

bitsetter 27. Feb 2007 19:57

Re: Problem mit DrawItem bei Listbox
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

ich habe ein bisschen Code angehängt, da ich nicht genau wusste was du meintest, habe ich gleich 2 verschiedene Versionen erstellt. Bei der einen musst du erst die Sternchen mit der Klammer entfernen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz