Your string is hex encoded. In order for StringToColor to decode that, you must prefix the string with a $ symbol.
Canvas.Brush.Color := StringToColor('$'+CCol);
This is made clear in the documentation which is always worth reading when you get stuck.
It may be simpler to call StrToInt instead of StringToColor since StringToColor does more than you need.
Canvas.Brush.Color := TColor(StrToInt('$'+CCol));