Konvertierungen 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 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);