Delphi tpopumenu不';不显示菜单项

Delphi tpopumenu不';不显示菜单项,delphi,popup,components,Delphi,Popup,Components,我正在开发以下组件,其中包含一个TPopupMenu。 组件注册后,我可以在设计时在PopupMenu2.Items中添加菜单声音,但它们不会在运行时显示 你知道为什么会发生这种情况,我如何解决 type TREditWithTags = class(TFrame) PopupMenu2: TPopupMenu; procedure Popup Menu2Change(Sender: TObject; Source: TMenuItem; Rebuild: Boole

我正在开发以下组件,其中包含一个TPopupMenu。 组件注册后,我可以在设计时在PopupMenu2.Items中添加菜单声音,但它们不会在运行时显示

你知道为什么会发生这种情况,我如何解决

type
  TREditWithTags = class(TFrame)
    PopupMenu2: TPopupMenu;
    procedure Popup
    Menu2Change(Sender: TObject; Source: TMenuItem; Rebuild: Boolean);
  private
     { Private declarations }
      RVeditor:TrichEdit;
      FPopUpEnabled:Boolean;
      procedure GetPopUp(Sender: TRichEdit; Button: TMouseButton; Shift: TShiftState; ItemNo, X, Y: Integer);
  public
     { Public declarations }
      procedure Loaded;override;
  protected
      procedure OnMenuItemClicked(Sender: TObject);override;
  published

  end;


implementation

{$R *.dfm}

procedure TREditWithTags.OnMenuItemClicked(Sender: TObject);
begin
  inherited;
 (RVEditor as TrichEdit).Lines.Add((Sender as TMenuItem).Caption);
end;


procedure TREditWithTags.PopupMenu2Change(Sender: TObject; Source: TMenuItem;  Rebuild: Boolean);
var
  i:TMenuItem;
begin
  for i in PopupMenu2.Items do
    i.OnClick:=OnMenuItemClicked;
end;

procedure TREditWithTags.SetRVEditor(Editor: TRichEdit);
begin
  inherited;
  if PopUpEnabled then
    RVEditor.OnRVMouseDown:=GetPopUp;
end;

procedure TREditWithTags.Loaded;
var
  i:TMenuItem;
begin
  inherited Loaded;
  if RVEditor is TRichEdit then
  begin
    for i in PopupMenu2.Items do
      i.OnClick:=OnMenuItemClicked;
    FRVEditor.OnRVMouseDown:=GetPopUp;
  end;
end;

procedure TREditWithTags.GetPopUp(Sender: TrichEdit; Button: TMouseButton; Shift:TShiftState; ItemNo, X, Y: Integer);
begin
  if Button=mbRight then
    PopupMenu2.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y+10);
end;

end.

我建议
RVEditor.Popupmenu:=PopupMenu2
@sertac我试过了,但这并不能解决问题。如果我添加更多的菜单声音,它们不会出现在弹出菜单中。你做了哪些调试,从中你学到了什么?这个过程的哪个关键部分没有发生?@pio-谁是弹出菜单的所有者。如果不是表单,请尝试调用SetSubComponent,请参阅文档。@Rob Kennedy我可以看到我在组件源中添加的菜单声音,但如果我从组件中添加更多声音,我会将最后一个声音放在表单中,而不会显示在弹出窗口中。