im ersten Teil wird ein Bild erzeugt, das dann in die Canvas kopiert wird
im zweiten Teil wird direkt auf Canvas gezeichnet
ich hab mal deinen Code unter XE2 laufen lassen und deine Schritte, wie beschrieben, nachvollzogen
zumindest wird bei mir in allen 3 Fällen, das rote Rechteck, immer angezeigt, von daher kann ich dir leider nicht weiterhelfen
btw du solltest die Objecte die du generiert hast auch wieder freigeben
ColorBar.Free
Graphics.Free