![]() |
Farbe der ausgewählten unfokusierten Einträge in einem TListView
In einem standard TListView werden die ausgewählten Einträge mit einer blauen Markierung angezeigt.
Wenn das Listview den Focus verliert ändert sich die Farbe von blau zu einem hellen grau. Kann ich das irgendwie verhindern ohne eine Fremkomponente nehmen zu müssen? Ich will also dass die ausgewählten Einträge immer blau bleiben, auch wenn man Listview keinen Focus hat. Das gleiche Verhalten also wie eine TListBox hat. Für ein Codebeispiel wäre ich sehr dankbar! |
AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView
:P
Eoin Codebeispiel aus dem die Lösung quasi ins Auge springt... (Das ist jede 2. Linie anders färben)
Delphi-Quellcode:
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); begin if Odd(Item.Index) then Sender.Canvas.Brush.Color := clYellow else Sender.Canvas.Brush.Color := clRed; end; |
AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView
Das ist leider keine Lösung, weil es nur für nicht selektierte Einträge funktioniert. Die Selektionen bleiben damit blau beim focused Listview und grau ohne Fokus.
Bevor ich die Frage hier stellte war ich zwei Stunden am googeln und habe auch einiges mit Ownerdraw versucht, jedoch entweder ohne Erfolg, oder mit starken Nebenwirkungen (Grafikfehler). |
AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView
Upps...:oops:
Da meinte ich doch ich hätte das schonmal gemacht und kopierte mal eben einen Code der dem ganzen nahe kam. Jetzt kommt die Erkenntnis das das damals keine Listviews sondern DB Grids waren. Sorry... |
AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView
Liste der Anhänge anzeigen (Anzahl: 2)
Bitteschön...8-)
Setze mal HideSelection auf True. Dann bleibt bei mir der Balken blau...:thumb: Vom Namen und dem Effekt würde ich es eher andersherum vermuten.:gruebel: Ergänzung: Das linke Bild ist unfocusiert mit HideSelection = True. Das rechte Bild ist das was du hast...unfocusiert mit HideSelection = False. |
AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView
Zitat:
Auf deinem 2. Screenshot ist genau das zu sehen was er nicht haben möchte. Eine GRAUE Hinterlegung des selektierten Items. Er möchte es in der gleichen Farbe haben wie auf dem linken Screenshot (blau). |
AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView
:P das linke Bild ist unfocusiert MIT HideSelection = True, das rechte Bild ist unfocusiert OHNE HideSelection = True (das was er hat). Deswegen heißen die Bilder auch MIT und OHNE... :stupid: ok,ok die Namen der Bilder sieht man nur auf dem Hint. :zwinker:
|
AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView
Liste der Anhänge anzeigen (Anzahl: 1)
Funktioniert bei mir nicht.
Hide Selection = True: weiß (keine Selektion zu sehen) Hide Selection = False: grau Kann es sein dass es beim linken Bild bei dir blau ist, weil das Edit gar keinen Focus hat (wie im rechten Screenshot). edit: Beispielprojekt angehängt (Delphi 7) |
AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Ich guck mal in deinen QT... Wie sieht dein Header aus? So wie in den 2 Bildern von mir oder wie W95? Bei deinem Projekt ist Theming ausgeschaltet gewesen. Den grauen Balken habe ich allerdings nicht hinbekommen. (Nachtrag: Jetzt doch ohne Theming) Im D7 mußt du imho ein Manifest einbinden. Wenn es dann immer noch nicht geht bin ich raus... |
AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView
Liste der Anhänge anzeigen (Anzahl: 2)
XP Manifest einbringen ändert nichts (wieso sollte es, schließlich verhält sich das Explorer Listview bis Windows 10 genauso wie meine Testapp).
Wenn es bei dir geht, kannst du einen Screenshot posten wo der Edit1 Text markiert und fokussiert ist? Weil die Screenshots die du eben gepostet hast schauen eben wie bei mir aus. links: blaue Markierung (weil Focus auf Listview) rechts: keine Markierung (weil kein Focus auf Listview) Ich will dass es wie im Bild links ausschaut, jedoch auch dann wenn Edit1 fokussiert ist. edit: Screenshots unter Windows10 mit XP Manifest Screenshot1. Edit ist fokussiert. Listview zeigt keine Markierung (weil Hideselection ja auch True ist, also korrektes verhalten). Screenshot2. Edit ist fokussiert. Listview zeigt graue Markierung (Hideselection = False). p.s. Könntest du bitte ein kompiliertes Exe von Dir anhängen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 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