====== Farbkonvertierungen in JScript ====== \\ ===== RGB-Wert und Farbreferenz (colorref) ===== Das Dialogelement **Color** liefert als Ergebnis den RGB-Wert ("000 000 000" bis "255 255 255").\\ Viele FF-Befehle benötigen aber zur Farbangabe den Referenzwert **colorref** (0 - 16777215)\\ \\ Hier zwei Umrechnungsroutinen in JScript\\ // Farbwert in String wandeln function rgb2string(rgb) { var i,s = new Array((rgb & 255).toString(), ((rgb >>> 8) & 255).toString(), ((rgb >>> 16) & 255).toString() ); for(i=0; i<3; i++) while( s[i].length < 3) { s[i] = "0" + s[i] }; return s.join(" "); } // String in Farbwert wandeln function string2rgb(cols) { var c = cols.split(" "); return (parseInt(c[2],10) << 16) + (parseInt(c[1],10) << 8) + parseInt(c[0],10) ; } // Test col = 0x123456; cols = rgb2string(col); // in Text wandeln col2 = string2rgb(cols); // und wieder zurück /Anzeigen (rgb als Hexzahl) FF_MessageBox("rgb\t " + "0x"+col.toString(16) + "\r\n" + "=>String\t " + cols + "\r\n" + "=>rgb\t " + "0x"+col2.toString(16) ,1); \\ Die Umwandlung einer Zahl in einen Text ist in JScript mit der Funktion toString(x) einfach möglich,\\ Hier wird noch eine Hlfsfunktion zum erzeugen einen festen Textlänge verwendet.\\ Das Ergebnis wird mit der [[skriptbefehle:ff_messagebox|FF_MessageBox]] Funktion angezeigt.\\ // Hilfsfunktion // Text auf der Linken Seite mit "filler" erweitern bis der Text die gewünschte länge besitzt. function fillleft(s,len,filler) { var result = s; while(result.length < len) result=filler+result; return result; } // Tabelle erzeugen function CreateRadixTable () { var s, x; s = "Hex\tDec\tBin\n"; for (x = 0; x < 16; x++) { s += fillleft(x.toString(16),8,'0') + "\t" + x.toString(10) + "\t" + fillleft(x.toString(2),8,'0')+ "\n"; } return(s); } // Tabelle anzeigen. FF_MessageBox( CreateRadixTable() , 1);