FastReport Farb-Konstanten: Unterschied zwischen den Versionen
K (→Beispiel) |
(→Ein Feld mit grauer Schrift) |
||
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 77: | Zeile 77: | ||
== Beispiel == | == Beispiel == | ||
+ | |||
+ | === Ein Feld mit grauer Schrift === | ||
In einem Angebot soll das Feld '''GesamtBetrag''' (PositionenGesBetrag) grau dargestellt werden, wenn es eine '''Alternativ-Position''' ist. Dazu wählt man das Feld und wählt im Objekt-Inspektor unter '''Ereignisse''' aus: | In einem Angebot soll das Feld '''GesamtBetrag''' (PositionenGesBetrag) grau dargestellt werden, wenn es eine '''Alternativ-Position''' ist. Dazu wählt man das Feld und wählt im Objekt-Inspektor unter '''Ereignisse''' aus: | ||
Zeile 88: | Zeile 90: | ||
else | else | ||
PositionenGesBetrag.Font.Color := clWindowText; | PositionenGesBetrag.Font.Color := clWindowText; | ||
+ | |||
+ | |||
+ | ;Hinweis | ||
+ | :Das Feld hat den Namen '''Alternativ_0_1'''. Es könnte auch nur '''Alternativ''' heißen, aber das "_0_1" gibt Ihnen den Hinweis darauf, dass das Feld eine 0 beinhaltet (☐=Ausgeschaltet) oder eine 1 (☑=eingeschaltet). | ||
+ | :Diese Namensgebung verwenden wir oft, weil wir der Meinung sind, dass z.B. das Feld '''Bezahlt_0_1''' aussagekräftiger ist als '''Bezahlt'''. | ||
+ | :Das Feld '''Artikelart_1M_2V_3DL_4AZ''' mag auf den ersten Blick ungewöhnlich erscheinen. Schaut man jedoch genauer hin, erkennt man, dass dieses Feld eine Bedeutung hat: 1=Miete, 2=Verkauf 3=Dienstleistung 4=Verkauf. Einfach, oder? | ||
+ | |||
+ | |||
+ | So, nun zu der Funktion des Codes: | ||
{| class="wikitable" style="text-align: left;" | {| class="wikitable" style="text-align: left;" | ||
Zeile 111: | Zeile 122: | ||
|...wird die Schriftfarbe auf die Standard-Schriftfarbe gesetzt, im Regelfall schwarz (man könnte auch '''clBlack''' verwenden). | |...wird die Schriftfarbe auf die Standard-Schriftfarbe gesetzt, im Regelfall schwarz (man könnte auch '''clBlack''' verwenden). | ||
|} | |} | ||
+ | |||
+ | === Man beachte die Klammern === | ||
+ | |||
+ | in diesem Code! Die sind wichtig! | ||
+ | |||
+ | if '''('''<Positionen."Alternativ_0_1"> = 1''')''' and '''('''<Positionen."PosNr"> > 0 ''')''' then | ||
+ | |||
+ | In einer '''if'''-Anfrage mit '''and ''' oder '''or''' wird jede Abfrage darauf geprüft, ob die Antwort '''wahr''' (true) oder '''falsch''' (false) ist. In diesem Fall muss also diese Teil der Abfrage | ||
+ | |||
+ | if '''(<Positionen."Alternativ_0_1"> = 1)''' and (<Positionen."PosNr"> > 0 ) | ||
+ | |||
+ | '''wahr''' ergeben '''und''' dieser Teil: | ||
+ | |||
+ | if (<Positionen."Alternativ_0_1"> = 1) and '''(<Positionen."PosNr"> > 0 )''' | ||
+ | |||
+ | Jeder dieser beiden Abfragen sind sozusagen ein Block für sich, der ein logischen Ergebnis '''Wahr''' oder '''Falsch''' ergibt. Und solch ein Block muss halt in Klammern stehen, so ist das festgelegt! Diese Festlegung entspricht der Vorgehensweise in den meisten üblichen Programmiersprachen. | ||
== Links == | == Links == |
Aktuelle Version vom 16. September 2015, 22:27 Uhr
Inhaltsverzeichnis
1 Allgemeines
Allen sichtbaren Objekte eines Report können Sie eine Farbe zuweise, entweder fest im Objekt-Inspektor oder über einen Code.
- Bitte beachten Sie
- Die Eigenschaft Objekt.Color gibt die Hintergrundfarbe an! Wenn Sie die Schriftfarbe ändern wollen, so müssen Sie die Eigenschaft Objekt.Font.Color setzen!
2 Konstanten
Diese Farb-Konstanten gibt es:
Die wichtigsten Farben sind:
Konstante | Farbe |
---|---|
clNone | Keine Farbe, das Objekt ist durchsichtig. Dies ist die Standardfarbe für Felder. |
clBlack | Schwarz |
clWhite | Weiß |
clRed | Rot |
clYellow | Gelb |
clGreen | Dunkles Grün |
clLime | Helles grün |
clNavy | Dunkles Blau |
clGray | Dunkles Grau |
clSilver | Helles Grau |
3 Farbwerte über Hexadezimale Zahl
Alternativ zu den Konstanten kann man eine Farbe auch über eine hexadezimale Zahl festlegen.
Dabei geben die drei niederwertigen Bytes die RGB-Farbintensität für Blau, Grün und Rot an.
$00FF0000 Blau mit voller Intensität $0000FF00 Grün $000000FF Rot $00000000 Schwarz $00FFFFFF Weiß
Es sind alle denkbaren Kombinationen möglich.
Das höchstwertige Byte steuert die Annäherung an die Systenfarbe
$00 Farbe ist der in der Systempalette am ähnlichsten $01 ergibt eine Farbe, die derjenigen in der aktiven Palette am ähnlichsten ist. $02 ergibt eine möglichst ähnlichste Farbe in der logischen Palette des aktuellen Gerätekontexts.
Normalerweise verwendet man "$00".
- Tipp
- Wenn Sie eine bestimmte Farbe wollen, so setzen Sie die Farbe eine beliebigen Objekts im Objektinspektor, kopieren die Hexa-Zahl in Zwischenablage und fügen Sie diese in den Code ein.
4 Beispiel
4.1 Ein Feld mit grauer Schrift
In einem Angebot soll das Feld GesamtBetrag (PositionenGesBetrag) grau dargestellt werden, wenn es eine Alternativ-Position ist. Dazu wählt man das Feld und wählt im Objekt-Inspektor unter Ereignisse aus:
Mit einem Doppelklick darauf kommt man in den Code-Editor und gibt diesen Code ein:
if (<Positionen."Alternativ_0_1"> = 1) and (<Positionen."PosNr"> > 0 ) then PositionenGesBetrag.Font.Color := clWindowFrame else PositionenGesBetrag.Font.Color := clWindowText;
- Hinweis
- Das Feld hat den Namen Alternativ_0_1. Es könnte auch nur Alternativ heißen, aber das "_0_1" gibt Ihnen den Hinweis darauf, dass das Feld eine 0 beinhaltet (☐=Ausgeschaltet) oder eine 1 (☑=eingeschaltet).
- Diese Namensgebung verwenden wir oft, weil wir der Meinung sind, dass z.B. das Feld Bezahlt_0_1 aussagekräftiger ist als Bezahlt.
- Das Feld Artikelart_1M_2V_3DL_4AZ mag auf den ersten Blick ungewöhnlich erscheinen. Schaut man jedoch genauer hin, erkennt man, dass dieses Feld eine Bedeutung hat: 1=Miete, 2=Verkauf 3=Dienstleistung 4=Verkauf. Einfach, oder?
So, nun zu der Funktion des Codes:
Code | Bedeutung |
---|---|
if (<Positionen."Alternativ_0_1"> = 1) | Wenn das Alternativ-Kennzeichen der Position eingeschaltet ist ( = 1)... |
and (<Positionen."PosNr"> > 0 ) | ...und wenn es kein Kapitel ist (<Positionen."PosNr"> > 0 ) |
then | dann... |
PositionenGesBetrag.Font.Color := clWindowFrame | ...wird die Schriftfarbe auf mittelgrau gesetzt... |
else | ansonsten... |
PositionenGesBetrag.Font.Color := clWindowText | ...wird die Schriftfarbe auf die Standard-Schriftfarbe gesetzt, im Regelfall schwarz (man könnte auch clBlack verwenden). |
4.2 Man beachte die Klammern
in diesem Code! Die sind wichtig!
if (<Positionen."Alternativ_0_1"> = 1) and (<Positionen."PosNr"> > 0 ) then
In einer if-Anfrage mit and oder or wird jede Abfrage darauf geprüft, ob die Antwort wahr (true) oder falsch (false) ist. In diesem Fall muss also diese Teil der Abfrage
if (<Positionen."Alternativ_0_1"> = 1) and (<Positionen."PosNr"> > 0 )
wahr ergeben und dieser Teil:
if (<Positionen."Alternativ_0_1"> = 1) and (<Positionen."PosNr"> > 0 )
Jeder dieser beiden Abfragen sind sozusagen ein Block für sich, der ein logischen Ergebnis Wahr oder Falsch ergibt. Und solch ein Block muss halt in Klammern stehen, so ist das festgelegt! Diese Festlegung entspricht der Vorgehensweise in den meisten üblichen Programmiersprachen.