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
Das Format #xxxxx kommt von
HTML und ist ein
HTML Farbwert. Den kannst du nicht direkt so in Delphi verwenden, weil Windows hier ein anderes Format für Farbwerte hat. Wie bereits von himitsu geschrieben, musst du die Reihenfolge der 2 stelligen HEX Werte ändern und kannst diese dann in Delphi mittels $xxxxx angeben. Das # darf hier nicht sein, da wir hier keine
HTML-Farbwerte nutzen können. Dein Wert wäre also korrekt: $A57300, den du genau so in Fastreport oder jeder anderen Stelle wo du eine Frabe angeben kannst, einfügen kannst. Mit dem $ sagst du Delphi, dass das Folgende eine HEX-Zahl ist. Das heisst, das ist genauso ein Integer wie dein dezimaler Wert 10842880. Gibt übrigens auch noch eine binäre Schreibweise, wie du im folgenden Beispiel sehen kannst.
Hier ein Beispiel der verschiedneen Zahlensysteme und wie man die in Delphi angeben kann:
Delphi-Quellcode:
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;
Ein Umrechung kannst du mit dem Windows Rechner (calc.exe) im Progammierermodus machen.