Servus!
Mein Problem dreht sich um die Darstellung der Farben bei verschiedenen Bildschirmeinstellungen.
Für die Darstellung von maximal 28 Kurvenzügen soll der Anwender die Farbe für jeden einzelnen Graphen einstellen können; der numerisch angezeigt Meßwert hat zur besseren Zuordnung ebenfalls die gleiche Farbe. Damit die Einstellung nicht jedesmal neu vorgenommen werden muß, speichere ich diese und weitere Einstellungen in einer ini-Datei, nach diesem Muster:
Quelltext
1: 2:
| Meßgerät 4, Kanal 2=Southbridge //Bezeichnung Meßgerät 4, Kanal 2=16752895 //Farbnummer |
Was noch erschwerend dazu kommt, ist die Möglichkeit, daß beim Mausklick auf eine Kurve die Bezeichnung des Meßkanals für kurze Zeit in Mauszeigernähe erscheint (eine ähnliche Funktion bietet Excel bei der graphischen Darstellung). Dies wird dadurch erreicht, daß der Farbwert beim Anklicken ermittelt, und dann mit den in der ini-Datei hinterlegten Werten verglichen wird. Bei einer Übereinstimmung wird dann der Eintrag der Bezeichnung eingeblendet.
Das Ganze funktioniert, wenn der PC, bei dem das Programm ausgeführt wird, mit einer Farbtiefe von 32 Bit arbeitet.
Schwierig wird es, wenn andere Farbtiefen verwendet werden, da eine Farbe, die bei 32Bit z.B. mit $FF03A7 dargestellt wird, bei 16Bit leicht differierende Werte hat und bei 256 Farben schon wieder anders aussieht. Ich habe schon ein wenig rumprobiert, wie die Zuordnungen der Farben bei verschiedenen Farbtiefen aussehen, aber beim simplen Vergleich kommen so enorme Datenmengen zustande, daß ich nicht einmal einen Plan habe, wie ich sie auswerten soll; was dazu führt, daß ich auch nicht wüßte, wie ich die Erkenntnisse anwenden sollte.
Eine primitive Methode wäre, nur 256 Farben zuzulassen, aber so möchte ich die Möglichkeiten, die ein Monitor heutzutage bietet, nicht beschneiden, nur weil ich das Problem nicht sinnvoll lösen kann.
Gibt es Unterlagen, wie die Zuordnungen 256Farben - 16Bit - 24Bit - 32Bit aussehen? Was für Methoden würdet ihr verwenden, oder standet ihr schon mal vor dem gleichen Problem?
Oder habe ich meine Frage so kompliziert formuliert, daß sie gar nicht verstanden werden kann?
Ein gutes neues Jahr allen Mitgiedern des Forums,
Adrian