平台:delphi 2010
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 222
ClientWidth = 447
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
Menu = MainMenu1
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object MainMenu1: TMainMenu
Left = 136
Top = 64
object file1: TMenuItem
Caption = 'file'
object recentfile1: TMenuItem
Caption = 'item 1'
end
end
end
object PopupMenu1: TPopupMenu
Left = 24
Top = 136
object popupitem1: TMenuItem
Caption = 'popup item'
OnClick = popupitem1Click
end
end
end
Run Code Online (Sandbox Code Playgroud)
这是以下示例的菜单结构
\n\nFile1 Edit1\n FileItem11 EditItem11\n FileItem21 EditItem21\nRun Code Online (Sandbox Code Playgroud)\n\n和两个弹出菜单项。代码:\xc2\xa0
\n\ntype\n TForm1 = class(TForm)\n MainMenu1: TMainMenu;\n File1: TMenuItem;\n FileItem11: TMenuItem;\n FileItem21: TMenuItem;\n Edit1: TMenuItem;\n EditItem11: TMenuItem;\n EditItem21: TMenuItem;\n PopupMenu1: TPopupMenu;\n PopupItem11: TMenuItem;\n PopupItem21: TMenuItem;\n procedure PopupItem11Click(Sender: TObject);\n procedure PopupItem21Click(Sender: TObject);\n private\n FSelectedItem: TMenuItem;\n FTracking: Boolean;\n procedure MenuRButtonUp(var Msg: TMessage); message WM_MENURBUTTONUP;\n public\n { Public declarations }\n end;\n\nvar\n Form1: TForm1;\n\nimplementation\n\n{$R *.dfm}\n\n{ TForm1 }\n\nprocedure TForm1.MenuRButtonUp(var Msg: TMessage);\nvar\n Cmd: UINT;\nbegin\n if not FTracking then\n FSelectedItem :=\n MainMenu1.FindItem(GetMenuItemID(Msg.LParam, Msg.WParam), fkCommand);\n\n if (not FTracking) and (FSelectedItem <> nil) then begin\n FTracking := True;\n LongBool(Cmd) := TrackPopupMenuEx(PopupMenu1.Handle,\n TPM_RECURSE or TPM_BOTTOMALIGN or TPM_RETURNCMD,\n Mouse.CursorPos.X, Mouse.CursorPos.Y, Handle, nil);\n FTracking := False;\n if Cmd <> 0 then\n PopupMenu1.DispatchCommand(Cmd);\n end;\n inherited;\nend;\n\nprocedure TForm1.PopupItem11Click(Sender: TObject);\nbegin\n Caption := 'Popup Item 1 clicked on ' + FSelectedItem.Caption;\nend;\n\nprocedure TForm1.PopupItem21Click(Sender: TObject);\nbegin\n // whatever..\n Caption := 'Popup Item 2 clicked on ' + FSelectedItem.Caption;\nend;\nRun Code Online (Sandbox Code Playgroud)\n