Ich verwende Delphi 2010 und wenn ich eine neue VCL-Anwendung erstelle, lege ein TPanel auf das Formular und setze seine "color" -Eigenschaft auf "clInactiveCaptionText", es zeigt die richtige Farbe an.
Korrekte Farbe:
Wenn ich jedoch den Hexadezimalwert für diese Farbe ($ 00434E54 --- R 67, G 78, B 84) eintrage, erscheint es falsch. Ich sollte beachten, dass das Ergebnis das gleiche ist, ob ich Runtime-Designs aktiviere oder nicht.
Falsche Farbe:
Irgendeine Idee darüber, warum diese Farbe nicht korrekt angezeigt wird, wenn ihr hexadezimaler Wert angegeben wird?
RGB-Farbwerte werden tatsächlich als BGR angegeben.
Also wenn du willst:
Wie andere angegeben haben, werden die RGB-Werte intern als BGR gespeichert (dh TColor
-Wert oder wie Windows ein COLORREF
nennt), deshalb geben Sie einen benutzerdefinierten Farbcode an Erhalte eine andere Farbe.
Um bei der Angabe von Farben in RGB-Form Ihre Gesundheit zu bewahren, können Sie die Funktion RGB () aus der Windows-Einheit verwenden; Dies akzeptiert Parameter in der "natürlichen" / intuitiven RGB-Reihenfolge (als Byte-Werte) und ergibt einen entsprechenden TColor
/ COLORREF
-Wert:
oder wenn hex einfacher ist:
%Vor% Eigentlich ist Tcolor RGBA-Farbformat und auch $FF000000
ist der Alphakanal also:
Und Sie können den tcolor-Wert einfach in rgb umwandeln:
%Vor%Dies funktioniert auch in plattformübergreifenden FMX-Delphi-Apps.
Mit dieser einfachen Funktion können Sie es einfacher machen:
%Vor%Tags und Links delphi