Никаких канвасов тут не нужно. Достаточно в произвольном обработчике напсиать код:
procedure TForm1.Button1Click(Sender: TObject);
begin
with RichEdit1.SelAttributes do
Color:=clRed //тут казываем нужный цвет
end;
SelAttributes - можно задать параметры для выделенного фрагмента (цвет,стиль...) короче в справке читайте
Вот из справки:
Use SelAttributes to discover or set the font characteristics of the currently selected text. SelAttributes specifies characteristics such as font face, color, size, style, and pitch. To change a single attribute of the currently selected text, read SelAttributes, and set one of its properties. To change all of the attributes of the currently selected text, set SelAttributes to a TTextAttributes object that represents the desired configuration of attributes. If no text is selected, SelAttributes represents the attributes of the cursor position.
When inserting new text, the font characteristics of the new text will match SelAttributes.
SelAttributes: TTextAttributes;Charset, Color,ConsistentAttributes, Height,Name,Pitch,Protected,Size,Style