AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein ListView Item Hintergrundfarben anpassen nach bestimmten Wert
Thema durchsuchen
Ansicht
Themen-Optionen

ListView Item Hintergrundfarben anpassen nach bestimmten Wert

Ein Thema von DieDolly · begonnen am 30. Mai 2019 · letzter Beitrag vom 31. Mai 2019
Antwort Antwort
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

ListView Item Hintergrundfarben anpassen nach bestimmten Wert

  Alt 30. Mai 2019, 16:18
Welches ist eurer Meinung nach die beste Möglichkeit ListView Items Hintergrundfarben farblich nach einem bestimmten Wert anzupassen?

Ich habe rund 50 Einträge dessen Daten in Klassen hinterlegt sind. Jede Klasse hat ein Integer Property was von 1 bis 70 beinhalten kann.
Wie stelle ich die Einträge so da, das Einträge mit höherem Integerwert rötlicher dargestellt werden als niedrigere, die am besten grün dargestellt werden?

Ein Array von 0 bis 69 mit Farbwerten ist nicht die Lösung oder?

Geändert von DieDolly (30. Mai 2019 um 16:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai
Online

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#2

AW: ListView Item Hintergrundfarben anpassen nach bestimmten Wert

  Alt 30. Mai 2019, 20:48
Sollte doch eigentlich trivial machbar sein. Beispiel: 0 ist RGB(0,255,0), also volles Grün, und 70 ist dann RGB(255,0,0), also volles Rot. Das in eine Formel gießen und diese in Code und du kannst die Farbe auf das ListView oder worauf auch immer anwenden. Wenn die Farben zu kräftig sind, kann man ja die Intensität abschwächen.

Stichwörter in dem Zusammenhang: Delphi-Referenz durchsuchenColorToRGB, Funktion/Makro MSDN-Library durchsuchenRGB, MSDN-Library durchsuchenGetRValue (und analog für G und B).

Grüße
Dalai
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#3

AW: ListView Item Hintergrundfarben anpassen nach bestimmten Wert

  Alt 30. Mai 2019, 20:49
So meinte ich das eigentlich nicht. Jedes Item soll eine eigene Farbe haben. Von 1 (ganz schwach grün oder so) bis 70 (ziemlich rot).
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.549 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: ListView Item Hintergrundfarben anpassen nach bestimmten Wert

  Alt 30. Mai 2019, 20:50
Ja, dazu musst Du nur den Rot- bzw. Grün-Anteil berechnen. Das sollte zu schaffen sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: ListView Item Hintergrundfarben anpassen nach bestimmten Wert

  Alt 30. Mai 2019, 21:10
Den Prozentwert anhand des Properties von 0 bis 255 ausrechnen ist kein Problem. Ich frage mich nur eher, wie man schön von grün, meinetwegen auch weiß über ... im Prinzip also ein Gradient von einer Farbe die signalisiert "wenig" zu einer die signalisiert "viel".

Ich hab sonst noch das hier. Dann erzeuge ich mir hiermit tatsächlich dieses 70-große Array http://www.perbang.dk/rgbgradient/

Geändert von DieDolly (30. Mai 2019 um 21:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.549 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: ListView Item Hintergrundfarben anpassen nach bestimmten Wert

  Alt 30. Mai 2019, 21:40
Du hast eine Anfangs- und eine Endfarbe. Von beiden ermittelst Du die RGB-Werte und die jeweiligen Differenzen. Die passende Farbe ergibt sich also aus dem jeweiligen Anfangswert zzgl. Differenz geteilt durch 70 multipliziert mit dem Faktor. Die so errechneten Werte wandelst Du in eine RGB-Farbe um... fertig.

[edit] Differenzen ist nicht ganz korrekt. Gemeint ist je Kanal Endwert minus Anfangswert, das kann also auch negativ werden. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (30. Mai 2019 um 21:54 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:50 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