AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Farbe der ausgewählten unfokusierten Einträge in einem TListView
Thema durchsuchen
Ansicht
Themen-Optionen

Farbe der ausgewählten unfokusierten Einträge in einem TListView

Ein Thema von Shark99 · begonnen am 16. Dez 2015 · letzter Beitrag vom 16. Dez 2015
Antwort Antwort
Seite 1 von 2  1 2      
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#1

Farbe der ausgewählten unfokusierten Einträge in einem TListView

  Alt 16. Dez 2015, 13:47
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!
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView

  Alt 16. Dez 2015, 14:51

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;
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#3

AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView

  Alt 16. Dez 2015, 14:55
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).
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#4

AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView

  Alt 16. Dez 2015, 15:20
Upps...
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...
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#5

AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView

  Alt 16. Dez 2015, 15:38
Bitteschön...

Setze mal HideSelection auf True. Dann bleibt bei mir der Balken blau... Vom Namen und dem Effekt würde ich es eher andersherum vermuten.

Ergänzung:
Das linke Bild ist unfocusiert mit HideSelection = True.
Das rechte Bild ist das was du hast...unfocusiert mit HideSelection = False.
Miniaturansicht angehängter Grafiken
mit.png   ohne.png  

Geändert von haentschman (16. Dez 2015 um 15:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView

  Alt 16. Dez 2015, 15:45
Ich will jetzt nicht zu böse klingen, aber bist du farbenblind?
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).
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#7

AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView

  Alt 16. Dez 2015, 15:49
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... ok,ok die Namen der Bilder sieht man nur auf dem Hint.
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#8

AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView

  Alt 16. Dez 2015, 16:01
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)
Angehängte Dateien
Dateityp: zip SelectionTest.zip (469,4 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#9

AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView

  Alt 16. Dez 2015, 16:10
Zitat:
Kann es sein dass es beim linken Bild bei dir blau ist, weil das Edit gar keinen Focus hat (wie im rechten Screenshot).
Nö... weil ich mit Klick auf das Edit den Focus weggezogen habe.

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...
Miniaturansicht angehängter Grafiken
deins.png   deins_ohne-theming.png  

Geändert von haentschman (16. Dez 2015 um 16:24 Uhr)
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#10

AW: Farbe der ausgewählten unfokusierten Einträge in einem TListView

  Alt 16. Dez 2015, 16:42
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.
Miniaturansicht angehängter Grafiken
test.png   test2.png  

Geändert von Shark99 (16. Dez 2015 um 16:51 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:15 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