Programmieren mit C++

Code-Beispiele & Lösungen

Allgemeine visuelle Objektklassen

Mehrfarbige Meteranzeige

Die von TGraphicControl abgeleitete Komponente Tdbmeter implementiert eine mehrfarbige grafische Anzeige von numerischen Werten, wie sie beispielsweise bei Audiogeräten eingesetzt wird:

Abbildung 7/2.1.1.25-1: Meter-Anzeige mit unterschiedlichen Werten

Die Anzahl der Segmente für die jeweilige Farbe kann individuell gewählt werden. Der gesamte Bereich erstreckt sich von 0 bis 100 und wird auf die entsprechenden Segmente aufgeteilt, deren Anzeige in der Reihenfolge grün, gelb und rot erfolgt.

Properties der Komponente Tdbmeter

Tcolor GreenColor  
Tcolor YellowColor
Tcolor RedColor    

Obwohl die Komponente intern mit den logischen Farben Grün, Gelb und Rot arbeitet, können die tatsächlich angezeigten Farben frei gewählt werden. Sie sind den entsprechenden Properties zuzuweisen.

Property GreenColor, YellowColor, RedColor

Tcolor GreenBack 
Tcolor YellowBack
Tcolor RedBack    

Auch der Hintergrund der drei Farben kann individuell festgelegt werden, um die drei Bereiche zu unterscheiden, auch wenn der tatsächlich anzuzeigende Wert diese noch nicht erreicht hat.

Property GreenBack, YellowBack, RedBack

int Greens
int Yellows 
int Reds    

Die Properties Greens, Yellows und Reds legen die Anzahl der Segmente in den entsprechenden Farben fest.

Die Anzahl der Segmente ist immer im Verhältnis zum Gesamtanteil zu sehen. Optisch ergibt die Summe der drei Farben 100%. Rechnerisch wird der zugehörige numerische Anteil der Farben jedoch über die Properties ###Max festgelegt. Es entspricht also:

GreenMax + YellowMax + RedMax = 100%

wobei die drei Bereiche unterschiedlich viele Segmente haben können, beispielsweise:

Farbe

###Max

Proportional

Willkürlich

Green

50

5

10

Yellow

30

3

5

Red

20

2

2

Property Greens, Yellows, Reds

int GreenMax 
int YellowMax
int RedMax   

Diese Properties legen den logischen Anteil der Farbe von 100 Prozent fest.

Property GreenMax, YellowMax, RedMax

bool ShowJustOne

Ist das Property ShowJustOne auf TRUE gesetzt, so wird lediglich das höchste Segment angezeigt, während alle übrigen Segmente auf der Hintergrundfarbe verbleiben.

Property ShowJustOne

int SepWidth

SepWidth legt die Breite der Zwischenlinien zwischen den einzelnen Segmenten fest.

Property SepWidth

TColor SepColor

Die Farbe der Trennlinie zwischen den Segmenten wird über SepColor spezifiziert.

Property SepColor

tdbmeterstyle Style

Das Property Style legt den Anzeigestil der Control fest. Mögliche Werte sind:

Konstante

Bedeutung

dsVertical

Vertikale Ausrichtung

dsHorizontal

Horizontale Ausrichtung

Property Style

tdbmeterdirection Direction

Direction spezifiziert die Laufrichtung der Control. Mögliche Werte sind:

Konstante

Bedeutung

ddRightDown

größter Wert rechts bzw. unten

ddLeftUp

größter Wert links bzw. oben

Property Direction

int Position 

Das Property Position speichert den aktuellen Anzeigewert. Dieser wird zur Umsetzung der Anzeige auf die Farbsegmente umgerechnet.

Position muß im Bereich

Position IN [0 .. GreenMax + YellowMax + RedMax]

liegen. Die tatsächliche Anzeigeposition ergibt sich dann nach Umrechnung der entsprechenden Anteile der Farben am Gesamtwert sowie anschließend anhand der Anzahl der Segmente pro entsprechender Farbe.

Property Position





Sachgebiet


© 2009-2012 by Alojado Publishing. Alle Rechte vorbehalten. Ausgewiesene Marken gehören ihren jeweiligen Eigentümern.
Mit der Benutzung dieser Seite erkennen Sie die Nutzungsbedingungen und die Datenschutzerklärung an. Der Betreiber übernimmt keine Haftung für den Inhalt verlinkter externer Internetseiten.
Seite erzeugt 2012-05-20 02:36:36 von textarchiv.alojado.de