What i could suggest is, once this routine is finished, to extract a smaller demo app
that does essentially the same, and put it somewhere for all to share.
There will be personal choices of course, eg. for the (slightly) different colors, i decided to go for concatenated strings
"R+G+B", to be retrieved via select case statements. You also could use the integer that represents the color,
but i like easy color recognition in the code. (You could also have variations in the alpha channel,
that way you can keep the colors the same, if there are not too many.)
In due time i'll come back to this.
Paul