CheckListBox und OwnerDraw
Ich verwende eine CheckListBox mit OwnerDraw, weil die Items mehrfarbigen und -zeiligen Text enthalten müssen und "aktiviert" werden können müssen.
Zwei Probleme habe ich damit. Zum einen wird trotzdem immer der gepunktete Fokusrahmen um die Items gezeichnet, und im Gegensatz zum ListView (wo ich weiß, wie man das unterbinden kann, denn da gibt es eine var-Variable DefaultDraw, die man einfach auf false setzen kann) krieg' ich das einfach nicht weg, außer indem ich Brush.Style auf bsClear setze - was aber zum einen nicht Sinn der Sache sein kann und zum anderen zu folgendem Problem führt: Ich verwende den Flat-Style der Listbox, weil die Checkbox sonst keinen XP Visual Style bekommt (so zwar nur flach, sieht aber trotzdem besser aus) - aber wenn ich den Brush.Style auf bsClear setze wie oben beschrieben, wird die CheckBox nicht mehr korrekt gezeichnet, insbesondere nach Klick verschwindet sie. Hat da jemand eine Lösung, oder ist es sinnvoll, auf ListView umzusteigen? |
Re: CheckListBox und OwnerDraw
Hallo
beim ondrawitem-ereignis prüfen, ob das item selektiert ist (odselected in state) und mit Canvas.drawfocusrect den Fokus einfach drüberzeichnen Mfg Frank |
Re: CheckListBox und OwnerDraw
Das gibt's nicht - das ist ja einfach :shock:
Aber ist es jetzt nicht so, dass das FocusRect zweimal gezeichnet wird, einmal von mir und einmal von Windows bzw. der VCL (wer auch immer)? Ist das nicht eigentlich unnötiger Overhead? Naja, egal, es funktioniert und man merkt davon nichts. Vielen Dank ;c) |
Re: CheckListBox und OwnerDraw
Moin OregonGhost,
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 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