Der Code
$00FF00 SHR 8
ist kein Farbfilter, wird hier aber u. a. für diese Aufgabe eingesetzt.
SHR 8
macht aus
$00FF00
den Wert
$0000FF
. Die Bits wurden eben um 8 Bits nach rechts verschoben. Wenn man das jetzt zum Byte konvertiert, und das passiert nebenbei wenn man die Funktion
Chr(X: Byte): Char;
nutzt, dann bleibt von
$0000FF
nur noch
$FF
. Bei
$00FF00
wäre es
$00
. Es wird also mit
$00FF00 SHR 8
der interessante zweite Byte weiterverschoben, sozusagen zu Byte zugeschnitten und mit Chr zum
ASCII Zeichen konvertiert. Macht man das mit allen drei Byte Werten, ergibt das drei
ASCII Zeichen die zum Schluss einen String aus drfei Buchstaben ergeben, z. B. Aj6. Das ist dann die in String "konvertierte" Farbe. Allerdings habe ich das noch nie gesehen und auch sonst halte ich davon nichts, da eine 0 mitten drin immer Probleme bereitet. Aber irgendwer kam eben auf die Idee es so zu machen.