![]() |
FastReport und Font-Color
Ich muss einen (statischen) Text in einer bestimmten Farbe anzeigen. Als Vorgabe habe ich einen HEX-Code #0073A5 - wenn ich diesen nun für ein TfrxMemoView in den Bereich Font -> Color eingebe (als $0073A5), dann macht mir FastReport daraus $000073A5 und zeigt eine völlig andere Farbe an. Eigentlich kenne ich das ja so, das #0073A5 eingegeben wird, aber da meckert FastReport, das sei kein Integer-Wert.
Da ich weder in der Internetsuche noch bei FastReport etwas dazu finden konnte, also hier die Frage: was mache ich falsch? Oder: was muss da überhaupt korrekt eingegeben werden? Hartmut |
AW: FastReport und Font-Color
# ist auch kein Wert für einen "Integer" :stupid:
HTML-Color? RGB vs BGR :zwinker: bzw. big-endian vs. little-endian (wenn man nur die 3 Bytes der Farben betrachtet) ![]() ![]() ![]() Ein Integer $112233 bzw $00112233 (oder 0x00112233) beedeutet $33 $22 $11 $00 im Speicher also $A57300 |
AW: FastReport und Font-Color
Der HEX-Code stammt aus einer RGB-Angabe: 0/115/165. Wenn ich das an verschiedenen Stellen - wo es möglich ist - direkt eingebe, kommt auch die korrekte Farbe dabei raus. Aber offensichtlich will FastReport keinen HEX- sondern einen Integer-Wert. Es stellt sich also die Frage, wie bekomme ich den?
Hartmut |
AW: FastReport und Font-Color
Es kommt auf die Art der Umwandlung an, aber
TColor = Integer (nicht wirklich, aber mit selben Wertebereich) IntToStr nimmt Dezimalzahlen, aber auch Hexadezimal (mit $ davor) StringToColor nimmt bestimmte Zahlnamen, aber auch alles, was IntToStr nimmt. Und Fastreport wird bestimmt TColor verwenden (also den Standard-Property-Editor des TColor, mit StringToColor) Zitat:
auf "Progammierer" umstellen und ... na siehst'e dann schon |
AW: FastReport und Font-Color
@himitsu: Ok, einen Converter habe ich nicht gefunden - aber zumindest den Weg zum Umrechnen von RGB in Integer:
RGB = R + G * 256 + B * 256*256 R=0 G=115=>29440 B=165=>10813440 -> Integer-Wert=>10842880 Jetzt passt Die Farbe! Trotzdem peinlich, dass es bei FastReport keinen Hinweis dazu gibt... Hartmut |
AW: FastReport und Font-Color
TColor ist nichts vom FastReport ... das ist überall im Delphi so.
Auch im Quellcode, wobei der Quellcode in aktuellen Delphis nun auch Binär kann. PS: siehe mein [Edit] oben in der #4 |
AW: FastReport und Font-Color
Zitat:
Bis bald... Thomas |
AW: FastReport und Font-Color
@himitsu: Dein Edit ist seeehr interessant - hab' ich vorher auch noch nicht gesehen...
@mytbo: auch interessant - aber da ich das nicht programmieren möchte, sondern nur den Wert nutzen will, könnte es aber für andere interessant sein. Danke. Hartmut |
AW: FastReport und Font-Color
Zitat:
Bis bald... Thomas |
AW: FastReport und Font-Color
Kommt auch auf den Designer drauf an.
z.B. der Runtime-Designer (der in der eigenen EXE) des FastReport ist nicht der Selbe, wie der in der IDE. |
AW: FastReport und Font-Color
Zitat:
Bis bald... Thomas |
AW: FastReport und Font-Color
Zitat:
Hier ein Beispiel der verschiedneen Zahlensysteme und wie man die in Delphi angeben kann:
Delphi-Quellcode:
Ein Umrechung kannst du mit dem Windows Rechner (calc.exe) im Progammierermodus machen.
var i: Integer; // oder TColor
begin i := 10842880; // Dezimal i := $A57300; // HEX i := %1010_0101_0111_0011_0000_0000; // Binär (geht so erst ab Delphi 11) // i hat hier immer den selben Wert in verschiedene Zahlensystemen. end; |
AW: FastReport und Font-Color
Der neue Unterstrich _ als Trenner ist kein Muß
und noch schöner, den kann man für alles benutzen, also auch im Dezimal und Hexadezimal.
Delphi-Quellcode:
StrToInt und StringToColor werden aber % und _ noch nicht kennen
var i: Integer; // oder TColor
begin i := RGB(0, 115, 165); i := RGB($00, $73, $A5); i := 10_842_880; // Dezimal i := $00A5_7300; // HEX i := $00_A5_73_00; // HEX i := %00000000_10100101_01110011_00000000; // Binär (geht so erst ab Delphi 11) i := %00000000101001010111001100000000; // Binär // i hat hier immer den selben Wert in verschiedene Zahlensystemen. end; |
AW: FastReport und Font-Color
Warum so aufwendig? Die VCL.Graphutils-Unit enthält eine Menge Konvertierungsfunktionen, z. B.
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz