TAdvMemo 3.7.4.8: How can I ADD a custom menu item to the DEFAULT Popup Context Menu that appears when right-clicking the TAdvMemo text?
Implement the OnCustomizeContextMenu event-handler:
procedure TForm1.AdvMemo1CustomizeContextMenu(Sender: TObject; CurX, CurY: Integer; ContextMenu: TPopupMenu);
var
NewMenuItem: TMenuItem;
begin
NewMenuItem := TMenuItem.Create(ContextMenu);
NewMenuItem.Caption := 'My Custom Item';
ContextMenu.Items.Add(NewMenuItem);
end;
Further customization:
procedure TForm1.AdvMemo1CustomContextMenuClick(Sender: TObject; MenuItem: TMenuItem);
begin
if SameText(MenuItem.Name, 'mIncreaseTextFontSize') then
AdvMemo1.Font.Size := AdvMemo1.Font.Size + 1
else if SameText(MenuItem.Name, 'mDecreaseTextFontSize') then
AdvMemo1.Font.Size := AdvMemo1.Font.Size - 1;
end;
procedure TForm1.AdvMemo1CustomizeContextMenu(Sender: TObject; CurX, CurY: Integer; ContextMenu: TPopupMenu);
var
NewMenuDivider, NewMenuItem: TMenuItem;
begin
if ContextMenu.Images.Tag = 0 then // only once
begin
ContextMenu.Images.AddImages(ImageListAdditionalAdvMemoContextMenuIcons);
ContextMenu.Images.Tag := ContextMenu.Images.Count;
end;
NewMenuDivider := TMenuItem.Create(ContextMenu);
NewMenuDivider.Caption := '-';
ContextMenu.Items.Add(NewMenuDivider);
NewMenuItem := TMenuItem.Create(ContextMenu);
NewMenuItem.Name := 'mIncreaseTextFontSize';
NewMenuItem.Caption := 'Increase text-font size';
NewMenuItem.ImageIndex := 5;
ContextMenu.Items.Add(NewMenuItem);
NewMenuItem := TMenuItem.Create(ContextMenu);
NewMenuItem.Name := 'mDecreaseTextFontSize';
NewMenuItem.Caption := 'Decrease text-font size';
NewMenuItem.ImageIndex := 6;
ContextMenu.Items.Add(NewMenuItem);
end;
2 Likes