本例效果图:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus; type TForm1 = class(TForm) MainMenu1: TMainMenu; OpenDialog1: TOpenDialog; mniFile: TMenuItem; mniOpen: TMenuItem; N1: TMenuItem; mniExit: TMenuItem; procedure mniOpenClick(Sender: TObject); procedure alert(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.alert(Sender: TObject); begin if Sender is TMenuItem then ShowMessage(TMenuItem(Sender).Caption); end; procedure TForm1.mniOpenClick(Sender: TObject); var mni: TMenuItem; event: TNotifyEvent; begin if not OpenDialog1.Execute then Exit; mni := TMenuItem.Create(Self); mni.Caption := OpenDialog1.FileName; event := alert; mni.OnClick := event; MainMenu1.Items.Items[0].Insert(2, mni); if MainMenu1.Items.Items[0].Count = 4 then begin mni := TMenuItem.Create(Self); mni.Caption := '-'; MainMenu1.Items.Items[0].Insert(3,mni); end; end; end.