Du könntest auch dem Name Property etwas zuweisen und dann aufgrund des Namens die auszuführende Action wählen...
Dann könntest Du den Tag nach Belieben auch nochanderweitig verwenden.
Delphi-Quellcode:
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
Button1: TButton;
mnuFile: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure MyMenuItemOnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.MyMenuItemOnClick(Sender: TObject);
begin
if (Sender is TMenuItem) then
case StrToIntDef(TMenuItem(Sender).Name,-1) of
0: ShowMessage((Sender as TMenuItem).Caption);
1: ShowMessage((Sender as TMenuItem).Caption);
2: ShowMessage((Sender as TMenuItem).Caption);
3: ShowMessage((Sender as TMenuItem).Caption);
4: ShowMessage((Sender as TMenuItem).Caption);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
NewItem: TMenuItem;
i: Integer;
begin
for i := 0 to 4 do
begin
NewItem := TMenuItem.Create(Form1);
NewItem.Caption := IntToStr(i);
NewItem.Name := IntToStr(i);
NewItem.OnClick := MyMenuItemOnClick;
mnuFile.Add(NewItem);
end;
end;