AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ListBox

Ein Thema von value is NULL · begonnen am 6. Jun 2014 · letzter Beitrag vom 8. Jun 2014
 
Popov
(Gast)

n/a Beiträge
 
#23

AW: ListBox

  Alt 6. Jun 2014, 13:13
Für mich klang das so, als würde dieses Event nur aufgerufen, wenn ich ein neues Item hinzufüge zB Listbox1.Items.Add('WasAuchImmer');
Bei OnDrawIten wird jedes Mal gezeichnet wenn es nötig ist. OnMeasureItem wird nur ein mal ausgeführt, z. B. bei deinem Add.

Zum Code. Den muss man nicht so komplex machen wie hier:
Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem
    (Control: TWinControl; Index: Integer;
    Rect: TRect; State: TOwnerDrawState) ;
 var
    myColor: TColor;
    myBrush: TBrush;
 begin
    myBrush := TBrush.Create;
    with (Control as TListBox).Canvas do
    begin
      myColor := TLBColor(Listbox1.Items.Objects(index)).Color;
      myBrush.Style := bsSolid;
      myBrush.Color := myColor;
      Windows.FillRect(handle, Rect, myBrush.Handle) ;
      Brush.Style := bsClear;
      TextOut(Rect.Left, Rect.Top,
              (Control as TListBox).Items[Index]) ;
      MyBrush.Free;
    end;
 end;
Im Grunde reicht es, was Farbe angeht, das:
Delphi-Quellcode:
 begin
    with (Control as TListBox).Canvas do
    begin
      ...
      Brush.Color := myColor;
      ...
    end;
 end;
Zum empfehlen ist sich an die Listbox ein Objekt mit Infox anzuhängen. Kein großer Aufwand, aber bei OnDrawItem kann man sich die nötigen Infos bezüglich Farbe und weitere Formatierung da rausholen.

Im Anhang habe ich ein kleines Beispiel das zeigt wie das mit dem angehängtem Objekt funktioniert und wie man jeden Item individuell einfärben kann:
Angehängte Dateien
Dateityp: zip BeispielFarbigeItems.zip (2,3 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz