unit Unit1;
interface
uses
Vcl.Forms,
Vcl.Menus;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
procedure MenuItemClick(Sender: TObject);
private
FPopupMenu: TPopupMenu;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses
Vcl.Dialogs;
procedure TForm1.FormCreate(Sender: TObject);
var
MenuItem: TMenuItem;
begin
FPopupMenu := TPopupMenu.Create(nil);
MenuItem := TMenuItem.Create(FPopupMenu);
MenuItem.Caption := 'Opción A';
MenuItem.OnClick := Self.MenuItemClick;
FPopupMenu.Items.Add(MenuItem);
MenuItem := TMenuItem.Create(FPopupMenu);
MenuItem.Caption := 'Opción B';
MenuItem.OnClick := Self.MenuItemClick;
FPopupMenu.Items.Add(MenuItem);
MenuItem := TMenuItem.Create(FPopupMenu);
MenuItem.Caption := 'Opción C';
MenuItem.OnClick := Self.MenuItemClick;
FPopupMenu.Items.Add(MenuItem);
Self.PopupMenu := FPopupMenu;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
FPopupMenu.Free();
end;
procedure TForm1.MenuItemClick(Sender: TObject);
begin
ShowMessageFmt('Has pulsado en el item con index: "%d"',
[FPopupMenu.Items.IndexOf((Sender as TMenuItem))]);
end;
end.