Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Unterschiedliche Selektionsfarben bei TListBox und TListView (https://www.delphipraxis.net/197015-unterschiedliche-selektionsfarben-bei-tlistbox-und-tlistview.html)

Shark99 10. Jul 2018 12:33

Unterschiedliche Selektionsfarben bei TListBox und TListView
 
Liste der Anhänge anzeigen (Anzahl: 1)
Angehängt ist ein Screenshot aus Delphi Xe5.

Auf der linken Seite ist eine TListbox, rechts eine TListView. Wieso sind die Selektionsfarben unterschiedlich? Die ListView scheint die standard Selektionsfarbe von Windows zu nehmen. Die Listbox nimmt für die Selektion clHighlight aus dem Delphi Farbraum. Ich hätte gerne, dass die Listbox auch die standard Selektionsfarbe von Windows nimmt.

Wo bekomme ich den Farbwert her?

himitsu 10. Jul 2018 12:56

AW: Unterschiedliche Selektionsfarben bei TListBox und TListView
 
Weil das aktive Theme (Skin/Design/...) der ListView eigene Farben definiert hat.

Wer hält sich denn heutzutage noch an Standards/Vorgaben. :roll:

Dalai 10. Jul 2018 13:02

AW: Unterschiedliche Selektionsfarben bei TListBox und TListView
 
Zitat:

Zitat von Shark99 (Beitrag 1406851)
Die Listbox nimmt für die Selektion clHighlight aus dem Delphi Farbraum.

Nicht wirklich. clHighlight ist die im Windows definierte Farbe für Selektionen/Auswahlen, die z.B. in Listboxen, Editboxen (markierter Text), Comboboxen usw. verwendet wird.

Grüße
Dalai

himitsu 10. Jul 2018 13:16

AW: Unterschiedliche Selektionsfarben bei TListBox und TListView
 
clHighlight ist eine Konstante, die für jene Farbe steht.

Mit Delphi-Referenz durchsuchenColorToRGB kann man sich darüber die jeweilige System-Farbe holen, bzw. beim Zeichnen werden solche Konstanten automatisch übersetzt.
Delphi-Quellcode:
clHighlight = TColor($FF000000 + COLOR_HIGHLIGHT) // COLOR_HIGHLIGHT = 13

siehe MSDN-Library durchsuchenGetSysColor

Shark99 10. Jul 2018 13:25

AW: Unterschiedliche Selektionsfarben bei TListBox und TListView
 
Zitat:

Zitat von himitsu (Beitrag 1406853)
Weil das aktive Theme (Skin/Design/...) der ListView eigene Farben definiert hat.

Wer hält sich denn heutzutage noch an Standards/Vorgaben. :roll:

Verstehe ich nicht. Hab Theming nicht aktiv. Es gibt auch kein Skin property bei der Listbox.
Zitat:

Zitat von Dalai (Beitrag 1406854)
Zitat:

Zitat von Shark99 (Beitrag 1406851)
Die Listbox nimmt für die Selektion clHighlight aus dem Delphi Farbraum.

Nicht wirklich. clHighlight ist die im Windows definierte Farbe für Selektionen/Auswahlen, die z.B. in Listboxen, Editboxen (markierter Text), Comboboxen usw. verwendet wird.

Leider ist es nicht der Fall. clHighlight ist bei mir RGB(0, 120, 215). Das ist die gleiche Farbe die als Selektionshintergrund in der Listbox verwendet wird. Die Win32 Komponenten wie die Listview verwenden aber für die Selektion RGB(204, 232, 255). Ich will aber keine festen Farbwerte verwenden. Hätte viel lieber die Windows-Farbe für Selektionshintergrund irgendwo ausgelesen.

Edit: GetSysColor(COLOR_HIGHLIGHT) ergibt auch RGB(0, 120, 215), also nicht die Farbe die TListview, TTreeview etc für Selectionshintergrund verwenden.

himitsu 10. Jul 2018 13:43

AW: Unterschiedliche Selektionsfarben bei TListBox und TListView
 
Liste der Anhänge anzeigen (Anzahl: 1)
Doch, das hast du.

Dalai 10. Jul 2018 14:00

AW: Unterschiedliche Selektionsfarben bei TListBox und TListView
 
Zitat:

Zitat von Shark99 (Beitrag 1406856)
Leider ist es nicht der Fall.

Doch, es ist genau, wie ich beschrieben habe. ListViews verwenden aber eine eigene, vom Windows-Theme definierte Hintergrundfarbe für die Selektion, wie himitsu schon richtig anmerkte.

Grüße
Dalai

Redeemer 10. Jul 2018 15:09

AW: Unterschiedliche Selektionsfarben bei TListBox und TListView
 
Windows hat für Listview-Auswahlen einen Skin, für Listbox-Auswahlen nicht. Das ist überall so und keine Delphi-bezogene Frage.

Shark99 10. Jul 2018 15:13

AW: Unterschiedliche Selektionsfarben bei TListBox und TListView
 
Wie kann ich diese Farbe auslesen? Muss doch irgendwie wie GetsysColor gehen.

uligerhardt 10. Jul 2018 15:28

AW: Unterschiedliche Selektionsfarben bei TListBox und TListView
 
Zitat:

Zitat von Shark99 (Beitrag 1406868)
Wie kann ich diese Farbe auslesen? Muss doch irgendwie wie GetsysColor gehen.

Vermutlich ist das eher als Bitmap hinterlegt. Da kommst du vermutlich mit Windows' Theme API ran; vielleicht auch über den StyleManager der VCL (oder wie auch immer das Ding mittlerweile heißt).


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:07 Uhr.
Seite 1 von 3  1 23      

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