AGB  ·  Datenschutz  ·  Impressum  







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

ListBox Color "updaten"

Ein Thema von chri_ri · begonnen am 23. Feb 2009 · letzter Beitrag vom 24. Mär 2009
 
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#7

Re: ListBox Color "updaten"

  Alt 24. Mär 2009, 20:35
Sorry, die Antwort hat ein wenig auf sich warten lassen.
Falls du einzelne Einträge mit einem Bild hinterlegen möchtest (oder lustige Einträge mit Farben hinterlegen), kannst du mal veruschen den Style auf eines der lbOwnerDrawXX (fixe oder variable Eintragsgröße) zu setzen und OnDrawItem (und ggf. OnMeasureItem) zuzuweißen. In den Ereignissen zeichnest du entsprechend (auch den jeweiligen String).

Falls es um ein Bild für den kompletten Hintergrund geht, auf dem dann normal die Einträge angezeigt werden, müsste es dann möglich sein, das Bild einmal zu zeichen und den Style auf lbOwnerDrawFixed zu setzen und den entsprechenden Teil des Bildes (oder das ganze Bild, wenns auf Rechenzeit nicht so ankommt) neu zu zeichnen.
Besser wäre hier aber die Komponente abzuleiten und auf WM_Paint zu reagieren, aber das scheint nicht auszureichen, da die Einträge wohl immer nochmal einzeln überzeichnet werden, also müsste man das auch hier überschreiben, außer du willst in deinem Bild Balken mit der eingestellten Hintergrundfarbe.

[Edit] Das mit dem WM_Paint überschreiben sollte doch gehen, einen kleinen Überblick dazu, wie die PaintBox sich zeichnet geben TCustomListBox.WMPaint, TCustomListBox.CNDrawItem und TCustomListBox.DrawItem. In WM_Paint wird eine Message erzeugt die CNDrawItem ausliest und darauf DrawItem aufruft. DrawItem ist als virtual deklariert und es zu überschreiben müsste dann eigentlich für den Hintergrund der Einträge ausreichen. Den Code hierfür müsste man eigentlich einfach ohne das FCanvas.FillRect übernehmen können.

[Edit2]Und das mit dem true bei InvalidateRect ist klar, denn das gibt ja gerade an, dass du den Hintergrund auch erneuert haben willst.
Man kann einen Barbier definieren als einen, der alle diejenigen rasiert, und nur diejenigen, die sich nicht selbst rasieren.
Rasiert sich der Barbier?
  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 00:57 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