С одним PopupMenu на все 100500 RichEdit делается очень просто:
Код:
procedure TForm1.PopupMenu1Click(Sender: TObject);
begin
if (PopupMenu1.PopupComponent is TRichEdit) and (Sender is TMenuItem) then
begin
with TRichEdit(PopupMenu1.PopupComponent) do
if Sender=fsBold1 then SelAttributes.Style:=[fsBold]
else if Sender=fsItalic1 then SelAttributes.Style:=[fsItalic]
else if Sender=fsUnderline1 then SelAttributes.Style:=[fsUnderline]
end;
end;
Всем RichEdit свойству PopupMenu назначается один компонент PopupMenu1. Всем обработчикам OnClick элементов меню PopupMenu1 для упрощения назначается одно событие PopupMenu1Click.