Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   FastReport und Font-Color (https://www.delphipraxis.net/214168-fastreport-und-font-color.html)

mytbo 27. Nov 2023 18:03

AW: FastReport und Font-Color
 
Zitat:

Zitat von himitsu (Beitrag 1530141)
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.

Stimmt, es gibt unterschiedliche Versionen von FastReport. Ich gehe gedanklich immer von der Vollversion aus, kenne auch keine andere, da ist es nicht der Fall.

Bis bald...
Thomas

Rolf Frei 29. Nov 2023 13:00

AW: FastReport und Font-Color
 
Zitat:

Zitat von harfes (Beitrag 1530126)
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.

himitsu 29. Nov 2023 14:36

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:
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;
StrToInt und StringToColor werden aber % und _ noch nicht kennen

peterbelow 30. Nov 2023 10:56

AW: FastReport und Font-Color
 
Warum so aufwendig? Die VCL.Graphutils-Unit enthält eine Menge Konvertierungsfunktionen, z. B. WebColorStrToColor.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:41 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz