Hola yossi.
Si utilizas un TButton podrías usar algo como este código:
Código:
procedure TForm1.btNegritaClick(Sender: TObject);
begin
with RichEdit1.SelAttributes do
if fsBold in Style then
Style:= Style - [fsBold]
else
Style:= Style + [fsBold];
end;
Pero al hacer click sobre el TButton, perdes la selección del texto al perder el foco.
Mejor sería usar un TPopupMenu con los items: Negrita, Subrayado e Itálica. Asignar el
PopupMenu al TRichEdit y poner en el evento OnClick del TMenuItem lo siguiente:
Código:
procedure TForm1.Negrita1Click(Sender: TObject);
begin
Negrita1.Checked := not Negrita1.Checked;
with RichEdit1.SelAttributes do
if Negrita1.Checked then
Style:= Style + [fsBold]
else
Style:= Style - [fsBold];
end;
ahora te quedará la selección.
Tendrías que hacer lo mismo con Subrayado e Itálica. ([fsUnderline], [fsItalic])
Saludos.