Farbwert für Datenfeld "Farbe" berechnen/automatisch einsetzen?
Grüsst Euch, Forum!
Ich möchte Farbfelder einsetzen, dessen Wert "berechnet" und automatisch gesetzt wird.
Einerseits habe ich 3 Zellen, R G und B, die die Anfangsfarbe generieren sollen, anschliessend möchte ich daraus Variationen ableiten und als Farbe zeigen...
Ist das möglich?
16 Antworten
-
Hallo Herr Grün. Wenn Du Textfelder für R,G,B benutzt und diese auch so heißen, dann sollte es so funktionieren,
color("rgb(" + R + "," + G + "," + B + ")")
wenn es Zahlenfelder sind, dann so.
let r:=text(R); let g:=text(G); let b:=text(B) color("rgb(" + r + "," + g + "," + b + ")")
Mirko
-
...und eben auch als String
color("rgb(22,50,25)")
-
Vielen Dank! Habs probiert, das skript
let r := text(R); let g := text(G); let b := text(B); color(r + g + b)
wird akzeptiert, aber es tut sich nichts.
Es ist im Farbfeld (das die Farbe anzeigen soll) eingefügt, unter
"Trigger nach Änderung"
Dann habe ich
- eine Farbe manuell eingefügt
- in die Felder R, G, B zahlen eingefügt
(Also im Farbfeld und in den Feldern (R G B) Änderungen vorgenommen)
...
Sollte der Trigger evtl. in den Zahlenfelder (R G B) gesetzt und das Farbfeld "ferngesteuert" werden?
Ich spiele jetzt noch ein wenig herum und lese mich im Handbuch schlau. Für Tips und Hinweise bin ich natürlich dankbar!
-
Hm, sollte es darum gehen, die RGB-Werte des Farbfeldes auszulesen und in die drei Zahlenfelder zu schreiben, um sie dort dann anpassen zu können, so ginge das wohl nur über einen Umweg. Denn m. W. lässt sich der Farbcode nur als Hex-Angabe zurückgeben. Diese müsste dann in Dezimalwerte umgerechnet werden.
Also angenommen, es gäbe ein Farbfeld namens Farbe, drei Zahlenfelder namens Rot, Grün und Blau sowie ein Formelfeld namens 'Neue Farbe' zur Anzeige der angepassten Werte aus Rot, Grün und Blau.
Der Code für den „Trigger nach Änderung“ im Feld Farbe könnte dann so aussehen:
let myHexArray := ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]; let myHexColor := upper(raw(Farbe)); let myHexR := substr(myHexColor, 1, 2); Rot := index(myHexArray, substr(myHexR, 1, 1)) * 1 + index(myHexArray, substr(myHexR, 0, 1)) * pow(16, 1); let myHexG := substr(myHexColor, 3, 2); 'Grün' := index(myHexArray, substr(myHexG, 1, 1)) * 1 + index(myHexArray, substr(myHexG, 0, 1)) * pow(16, 1); let myHexB := substr(myHexColor, 5, 2); Blau := index(myHexArray, substr(myHexB, 1, 1)) * 1 + index(myHexArray, substr(myHexB, 0, 1)) * pow(16, 1)
Die Werte von Rot, Grün und Blau könnten dann beliebig verändert werden. Das Ergebnis ließe sich in dem Formelfeld 'Neue Farbe' anzeigen:
color(Rot, 'Grün', Blau)
Generell würde ich übrigens versuchen, die Namen von Variablen und Datenfeldern immer aus mindestens zwei Zeichen bestehen zu lassen.
-
Hi Mirko und Planox
Danke vielmals!
es geht mir eher darum, den Farbwert in klassischen Eingabefelder einzugeben, anstatt im Farbfeld, weil das dort mühselig ist, schneller verändert/verloren geht (?), und bei Bedarf easy auch visuell ausgelesen werden kann... Das Darstellen der Farbe hingegen ist wichtig.
Das Auslesen in einem Formelfeld funktioniert tadellos
text(R + ", " + G + ", " + B)
Ergebnis = "125, 114, 95"
hingegen schaffe ich es nicht, den Wert in ein Textfeld zu schreiben oder (Endziel) das Farbfeld zu beeinflussen?
Testfeld_txt = text(R + ", " + G + ", " + B)
Testfeld_txt bleibt leer. Auch, wenn ich eingebe
Testfeld_txt = text('hallo welt')
-
HA! Stop! ES FUNKTIONIERT! JUHU!
Content aside
- Status Answered
- vor 11 MonatenZuletzt aktiv
- 16Antworten
- 83Ansichten
-
4
Folge bereits