Farbcodes in VB?

Hallo!

Ich bin auf der Suche nach einer Farbtabelle, die die Farben als VB-Werte enthält (z.B. Schwarz = 0, Hellgrün = 65280 usw.) Googlen hat nicht geholfen - da komme ich nur immer wieder zu den Hex- oder HTML-Formaten.

Weiß wer was?

Danke und Gruß,
Thomas

Hallo Thomas,

Ich bin auf der Suche nach einer Farbtabelle, die die Farben
als VB-Werte enthält (z.B. Schwarz = 0, Hellgrün = 65280 usw.)
Googlen hat nicht geholfen - da komme ich nur immer wieder zu
den Hex- oder HTML-Formaten.

Ja, machst Du doch auch. :wink:
ich habe mal 65280 nach Hex umgerechnet und bekomme „00FF00“ …
Rot = 00 Grün FF Blau = 00
Für ein nettes Grau = „7F7F7F“ ergibt sich damit 8355711 … einfach umgerechnet. :wink:

cu Rainer

OK, nochmal langsam…
Hallo Rainer,

schon mal vielen Dank - ich hätte gleich dazusagen sollen, dass ich überhaupt keinen Plan vom Thema habe. Ich weiß nur, wonach ich suche.
Was ich demnach brauche, ist die Formel, mit der ich die HEX-Farben umrechne - wie du eben vorgemacht hast.

Wie lautet denn die?

Grüße vom DAU,
Thomas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Thomas,

Was ich demnach brauche, ist die Formel, mit der ich die
HEX-Farben umrechne - wie du eben vorgemacht hast.

Wie lautet denn die?

Formel? Brauchst Du nicht.

Farbe=Hex$(Farbe)

Wenn vorher in 'Farbe" 65280 drin stand, steht nachher „FF00“ drin.

Grüße vom DAU

DAUs programmieren nicht, damit sind wir schon mal auf der sicheren Seite. :wink:

cu Rainer

Hallo.

Ich bin auf der Suche nach einer Farbtabelle, die die Farben
als VB-Werte enthält (z.B. Schwarz = 0, Hellgrün = 65280 usw.)
Googlen hat nicht geholfen - da komme ich nur immer wieder zu
den Hex- oder HTML-Formaten.

Also, grundiziell (pfalz Du das schon weißt, sorry!) setzen sich die Farben am Monitoni (True Color=24 Bit) aus den drei Komponenten Rot, Grün und Blau zusammen. Rot belegt die ersten 8 Bit, Grün die zweiten, Blau die dritten, wobei der Wertebereich für jede Farbkomponente von 0 bis 28-1 reicht. Das ergibt nach Adam Riese und Eva Zwerg für jede Einzelfarbe den Wertebereich 0 bis 255.

Weil das aber zu einfach ist, muss der entsprechende Wert für Grün mit 256 und für Blau mit 65536 multipliziert werden. Beispielrechnung für totales Weiß : Rot=255, Grün=255*256=65280, Blau=255*65536=16711780. Addiert 16777315. Entsprechend Vollrot=255, Vollgrün=65280, Vollblau=16711780.

Nun kommt der Dreisprung : Dezimal 255 ist sedezimal FF. Die dezimalen Zahlen von oben also Vollweiß=xFFFFFF, Vollblau=xFF0000, Vollgrün=x00FF00, Vollrot=x0000FF. Bei x000000 hast Du die Wahl zwischen Pottschwarz, Rabenschwarz und Nachtschwarz :wink:

Deine eigenen Farbtöne pempelst Du Dir mit entsprechenden Zahlwerten selbst zusammen, die Du entweder einzeln mit RGB(rot,grün,blau) übergibst oder mit HEX$(dezimalzahl), wie schon jemand vor mir schrub. Eskalapperdi :wink:

Gruß kw

Hallo Thomas,
… gerade probiert, rückwärts wird’s umständlicher. :wink:

Farbe = „00FF00“
rot = Val("&H" + Mid(Farbe,1,2))
gruen = Val("&H" + Mid(Farbe,3,2))
blau = Val("&H"+Mid(Farbe,5,2))
Farbe=rot * 256^2 + gruen*256 + blau

cu Rainer

Ein kleiner Fehler, oder?
Wie schon meine beiden Vorredner schroben, hilft hier entweder Hex(Dezimalzahl) oder noch besser RGB(Rot, Grün, Blau) weiter. Allerdings gibt es eines zu beachten:

Die Funktion RGB(Rot, Grün, Blau) erzeugt eine Dezimalzahl, die, umgewandelt in HEX, folgendes darstellt: xBBGGRR. Damit meine ich: Im ersten Byte steht der Blau-Anteil, im zweiten der Grün-Anteil und im dritten der Rot-Anteil. Blau und Rot ist also vertauscht. Das ist zu beachten, wenn man mit Hex(Dezimalzahl) arbeitet!

Leicht überprüfen lässt es sich so:

MsgBox Hex(RGB(255, 0, 17))

Kristian