Verwendung von Farben

Geräte mit Farbdisplays bieten die folgenden Möglichkeiten zum Einsatz von Farbe

Welche Terminals mit Farbdisplays erhältlich sind, und welche Farbmodelle von welchem Gerät unterstützt werden, finden Sie in der 'Feature Matrix'.

Dieses Dokument beschreibt einige (aber bei weitem nicht alle) Möglichkeiten zur Verwendung von Farben in den anwenderprogrammierbaren Terminals.

Inhalt

  1. UPT Standard-Farben
  2. Spezielle Farbwerte in Eingabefeldern des Programmiertools
  3. Farb-Auswahl-Dialog (für Geräte mit mindestens 256 Farben)
  4. RGB-Farbmischungen in der UPT-Interpreter-Sprache
  5. Tag/Nacht-Umschaltung per Farbschema
  6. Graphische Elemente mit Farbverläufen
  7. Harmonisierte Farben (für alle Anzeige-Seiten einer Applikation)

Siehe auch:

UPT Standard - Farben

Bei Geräten mit Farbdisplay können bei bestimmten Anzeigekommandos Farbwerte in der Parameterliste übergeben werden. Nach Möglichkeit sollten dazu nur die folgenden 16 "Standard-Farben" verwendet werden, da diese unabhängig vom unterstützten Farbmodell funktionieren :

Alter Farbwert (4 Bit) Token für Display-Interpreter Script-Sprache Colour
0 black clBlack Schwarz
1 blue clBlue Blau
2 green clGreen Grün
3 cyan clCyan Blaugrün
4 red clRed Rot
5 magenta clMagenta Violett
6 yellow clYellow Gelb
7 white clWhite Weiss
8 RGB(64,64,64) Dunkelgrau
9 RGB(127,127,255) Hellblau
10 RGB(127,255,127) Hellgrün
11 RGB(192,192,255) helles Cyan
12 ?
13 ?
14 ?
15 RGB(192,192,192) Hellgrau

Zusätzlich besteht im Programmiertool noch die Möglichkeit, Farbwerte als RGB-Mischung zu definieren - siehe nächstes Kapitel. Beachten Sie, dass dies nach dem Herunterladen des Anzeigeprogramms in das Terminal nur funktioniert, wenn das Terminal mindestens 256 Farben (d.h. 8 Bit pro Pixel) verwendet. Bei älteren Farbdisplays (wie z.B. UPT-167 "Color" mit Passiv-STN und 4 Bit/Pixel) funtioniert die Farbmischung nicht, sondern nur die oben beschriebenen 16 Standard-Farben.


Spezielle Farbwerte in Eingabefeldern des Programmiertools

Negative Farbwerte haben bei der Eingabe im Programmiertool eine spezielle Bedeutung:

Farbwert
im Editierfeld
Bedeutung
-1 verwende die für die aktuelle Seite definierte, Tag/Nacht-abhängige Default-Farbe
-2 Transparenz (z.B. "Hintergrund nicht füllen" bzw. "durchscheinender Text")

Farb-Auswahl-Dialog (für Geräte mit 256 Farben)

Per Doppelklick in das entsprechende Eingabefeld im Programmiertool (z.B. Eingabefeld für Vorder- oder Hintergrundfarbe) wird der folgende Farbauswahl-Dialog geöffnet:

Colour selector

Die mit diesem Dialog ausgewählte Farbmischung wird bei der übernahme in das UPT-Programmiertool folgendermaßen als Text im Editierfeld dargestellt:

#<Rot-Anteil><Grün-Anteil><Blau-Anteil>

Jeder Farbanteil wird durch eine einzelne Ziffer zwischen 0 und 7 dargestellt. Beispiele:

#000 = Schwarz
#777 = Weiß
#700 = Rot (maximale Sättigung)
#070 = Grün (maximale Sättigung)
#007 = Blau (maximale Sättigung)

RGB-Farbmischungen im Interpreter

Um beispielsweise die Vorder- oder Hintergrundfarbe eines Anzeigelements während der Laufzeit zu ändern (z.B. beim MKT-View II mit TFT-Farbdisplay), kann die folgende Interpreterfunktion zum "Mischen" einer beliebigen Farbe verwendet werden:

Syntax:
rgb( <Rot-Anteil>,   <Grün-Anteil>,   <Blau-Anteil> )

Unabhängig vom verwendeten LCD-Controller (der i.A. weit weniger als 24 Bit Farbtiefe zulässt) werden alle drei Farbkomponenten als Wert zwischen 0 (Minimum) und 255 (Maximum) definiert. Nebenher bemerkt, ähnliches gilt auch für die Ansteuerung der optionalen RGB-LEDs in bestimmten Geräten.

Zum ändern der Vorder- oder Hintergrundfarbe zur Laufzeit (nicht zur Design-Zeit) dient das Interpreterkommando "disp", mit dem Elemente auf der aktuellen Bildschirmseite (display page) adressiert werden können.

Beispiel:
disp.Title.bc=rgb(127,255,255) : REM Setze Hintergrundfarbe des Elements "Title" auf helles Türkis

Hinweis: Da diese Funktion nicht bei allen Geräten verfügbar ist (speziell nicht bei älteren Geräten ohne TFT), verwenden Sie wenn möglich die weiter oben definierten Standard-Farben .

Siehe auch:

Tag / Nacht - Umschaltung per Farbschema

Mit Hilfe der für eine Anzeigeseite definierten Default-Farben lässt sich relativ einfach eine Tag-/Nacht-Umschaltung realisieren.

Definieren Sie dazu in der Seitendefinition (Kopf) geeignete Vorder- und Hintergrundfarben, z.B.:

day/night colours of a display page

Eine Anzeigeseite mit diesem Farbschema würde bei Tag folgendermaßen aussehen...

... und so bei Nacht:

the same page "at night"

Um zwischen Tag- und Nachtmodus umzuschalten, wird das Tag-Nacht-Flag ("night") zur Laufzeit per Interpreterkommando oder Script gesetzt - Details dazu weiter unten. Um beim Erstellen einer Anzeigeseite im Programmiertool schnell zwischen Tag- und Nachtmodus umzuschalten, klicken Sie im Hauptmenü auf

Optionen ... Umschaltung Tag->Nacht bzw. Umschaltung Nacht->Tag,

oder (alternativ) in der oben abgebildeten Registerkarte Page Properties (Definitions-Kopf der aktuellen Anzeigeseite) auf die Tabellenüberschrift "Tag" oder "Nacht". Intern wird dadurch das night-Flag auf 1 (TRUE) oder 0 (FALSE) gesetzt, was Sie auch im Watch-Fenster kontrollieren können.

Hinweis:
Solange das Anzeigeprogramm im Simulator 'läuft', kann es passieren, dass das Tag/Nach-Flag in einem der programmierten "Events" (s.U.) sofort wieder zurückgesetzt wird. Stoppen Sie in diesem Fall den Simulator (in der Statuszeile muss neben "Simulator" der Status "Gestoppt" stehen).

Beim Erstellen von Anzeigeseiten mit umschaltbaren Tag / Nacht-Design sollten die die Vorder- und Hintergrundfarben in den einzelnen Anzeigezeilen auf -1 gesetzt werden. In den oben abgebildeten Screenshots erscheint der Text "MKT-View II" unabhängig von der Tag/Nacht-Umschaltung immer grün, weil in der entsprechenden Anzeigezeilen-Definition die Textfarbe 'fest' (d.h. nicht als "-1") definiert wurde:

display line with "fixed" text colour

Bei allen anderen Anzeigeelementen werden "Default"-Vordergrund- und Hintergrundfarben (codiert als "-1"), bzw transparenter Hintergrund (codiert als "-2") verwendet:

display line using "default" colours

Tipps:
Verwenden Sie möglichst wenige "individuell gefärbte" Anzeigezeilen. Generell sollte Farbe sparsam eingesetzt werden, und intensive Farbtöne nur zur Signalisierung besonderer Zustände (z.B. Rot für Fehlermeldungen). Die hier gezeigten Beispiele stellen in dieser Hinsicht eine "bewusste übertreibung" dar !
Wenn Sie auf einer Anzeigeseite variable Texte mit transparentem Hintergrund verwenden, sollten Sie für diese Seite die Option "diese Seite immer KOMPLETT neu zeichnen" setzen (always redraw this page completely). Andernfalls könnte, wenn sich der Text ändert, die alte Schrift als Hintergrund zwischen den neuen Buchstaben durchscheinen.

Um (im "echten" Terminal) automatisch zwischen Tag- und Nachtbetrieb umzuschalten, bieten sich dank des Interpreters (bzw der programmierbaren Events) viele Möglichkeiten. Der Zugriff auf das Tag/Nacht-Flag ist auch per Script ( display.night ) möglich. Alle bewirken letztendlich dass das "night"-Flag auf 1 (night=1, d.h. "Nacht") oder 0 (night=0, d.h. "Tag") gesetzt wird. Beispiele:

Graphische Elemente mit Farbverläufen

Bei manchen Elementen, wie z.B. Buttons, können zwei verschiedene Hintergrundfarben definiert werden. Der Hintergrund des Buttons erhält dann einen Farbverlauf von der ersten Farbe zur zweiten Farbe.

configuration of a button with colour gradient fill         coloured button with gradient fill

Um an beliebigen anderen Stellen (ohne Button) Flächen mit Farbverläufen zu erzeugen, kann das Grafikkommando "gf" (gradient fill) verwendet werden.

Harmonisierte Farben für alle Seiten einer Applikation

Anwender von Farb-Displays stehen manchmal vor dem Problem, daß die bei der Erstellung der Anzeigeseiten verwendeten Farben nicht mehr "gefallen", oder dass die verwendeten Farben nicht einheitlich sind (z.B. weil die Seiten aus verschiedenen Applikation zusammengestellt wurden). Dies passiert besonders dann, wenn die alten (und nicht mehr favorisierten) "Gallerie-Seiten" für die Erstellung eines Anzeigeprogramms verwendet wurden.

Um die auf bestimmten (oder auf allen) Seiten verwendeten Farben zu ersetzen, bietet sich folgendes Vorgehen an:

  1. Falls nicht schon erfolgt, entfernen Sie individuelle Farben in den Definitionen einzelner Anzeige-Elemente. Dazu werden alle Farben in der Display-Definitions-Tabelle auf -1 gesetzt (der Farbwert "minus Eins" bedeutet "verwende die Default-Farbe, die für die aktuelle Seite definiert wurde").
  2. Wählen Sie im Hauptmenü des Programmiertools die Funktion Bearbeiten (Edit) .. Harmonisierte Farben wählen (Select Harmonized Colours).
    Dadurch wird das folgende Dialogfenster geöffnet:
    Screenshot 'Harmonized Colour Dialog'
  3. ändern Sie gegebenenfalls die Farben, und schließen Sie das Dialogfenster mit dem "OK"-Button. Von nun an werden die so definierten Farben als Voreinstellung für jede neu erstellte Anzeigeseite verwendet, und in den folgenden Schritten:
  4. Wählen Sie im Hauptmenü die Funktion Bearbeiten (Edit) .. Farben auf der aktuellen Seite harmonisieren (Harmonize colours on this page)

       oder
  5. Wählen Sie im Hauptmenü die Funktion Bearbeiten (Edit) .. Farben auf allen Seite harmonisieren (Harmonize colours on all pages)

Zurück zum Anfang

Letzte Änderung: 2016-10-14, W.B.