Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - [VisualCLX] Farbverwirre


mexx - Do 19.01.06 16:10
Titel: Farbverwirre
Wenn das $00FFF5EC ein schönes blau ist, was ist dann weiss?


Kroko - Do 19.01.06 16:17

Ausprobieren oder clWhite nehmen!

Tipp:
$FFFFFF
$xx0000 blau
$00xx00 grün
$0000xx rot


mexx - Do 19.01.06 16:26

Das ist ja eben das schlimme! *heul* Aus irgendein Grund will er clWhite nicht mehr kennen und nur noch diese Farbcodes nehmen.


Tilo - Do 19.01.06 17:18

Vielleicht ein deklarations Fehler? irgendwo statt Tcolor was anderes genommen?
Oder fehlt bei den Uses etwas?


MadDoctor - Fr 20.01.06 07:58

$FFFFFF müsste Weiß sein
$000000 demnach Schwarz

Oder doch umgekehrt :gruebel:


Fädas - So 22.01.06 13:15
Titel: Farbe
Ja
#FFFFFF ist weiss und
#000000 ist schwarz

# xx, xx, xx
ist ja # r(rot),g(grün),b(blau) aber nicht vergessen in Delphi kommt noch 00 vor den code.


Alstar - So 22.01.06 13:22


Delphi-Quelltext
1:
uses Graphics                    


Bringt die schönen Farbdeklarationen wie clWhite zuürck


turboPASCAL - Mo 23.01.06 02:09


Delphi-Quelltext
1:
$00FFFFFF // = Weiss = clWhite                    


also;

$00 Blau Grün Rot

$00 ist reserviert (Systemfarben oder so) :gruebel:


Blackheart666 - Mo 23.01.06 02:29

Ja
#FFFFFF ist weiss und
#000000 ist schwarz
# xx, xx, xx
ist ja # r(rot),g(grün),b(blau) aber nicht vergessen in Delphi kommt noch 00 vor den code.

Also wer da noch Durchsteigt Respekt...Ich seh nur noch Rot.


BenBE - Mo 23.01.06 02:45

user profile iconBlackheart666 hat folgendes geschrieben:
Ja
#FFFFFF ist weiss und
#000000 ist schwarz
# xx, xx, xx

Soweit stimmts ...

user profile iconBlackheart666 hat folgendes geschrieben:
ist ja # r(rot),g(grün),b(blau) aber nicht vergessen in Delphi kommt noch 00 vor den code.
Also wer da noch Durchsteigt Respekt...Ich seh nur noch Rot.

Ansonsten steht hier grad schwachsinn:


Delphi-Quelltext
1:
Farbe := $00 shl 24 {RGB-Farbwert} + Blue shl 16 + Green shl 8 + Red shl 0;                    


--> $00BBGGRR

Und wer sich jetzt wundert, warum ich das gegenüber HTML gedreht aufschreibe, der sollte sich mal kurz mit Big-Endian und Little Endian-Codierung beschäftigen:

Der Farbwert von Delphi liegt nämlich im Speicher als

RR GG BB 00

Womit wir wieder das Format von HTML hätten (mal abgesehen davon, dass die 00 am Ende nicht zu passen scheint ;-) Rein Speicher-technisch wird auf Intel-Prozessoren IMMER Big Endian verwendet, d.h. MSB (Most Significant Byte) an höherwertigen Speicheradressen.

Ansonsten bietet Delphi für die Leute, die das immer noch nicht geschnallt haben in der Unit Graphics 2 schöne Funktionen ColorToRGB und RGBToColor (oder wie die gleich nochmal hießen) ...


Blackheart666 - Mo 23.01.06 03:04

Delphi liefert schon etliche Möglichkeiteten zb.
IntToHex, ColorStr, ColorToRGB... war etwas ironisch gemeint...


Heiko - Mo 23.01.06 08:21

Als vereinfachung kann man die $00 weglassen und nur noch das hier schreiben:


Delphi-Quelltext
1:
Farbe := Blue shl 16 + Green shl 8 + Red;                    


Bei Delphi kommt da genau das gleiche raus. Die ersten 2 Byte (die meistens $00 sind) sind Systemfarben. Diese Systemfarben werden, laut meinen Informationen, aber von den vordefinierten Farben von Delphi verwendet (wes wegen die bei jedem OS anders aussehen können ;) ).