小弟是delphi新手,下列代码是动态创建菜单项,但是程序运行结果,却没有创建菜单,不知是哪里的问题,请各位大虾指教。不胜感激!
[code=unit] Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus;type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
file1: TMenuItem;
procedure FormCreate(Sender: TObject);
private
procedure MonthClick(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
var
PullDownOutput:TMenuItem;
Item:TmenuItem;
i:integer;
SelfPosition:integer;
begin
PullDownOutput := TMenuItem.Create(self);
PullDownOutput.Caption :='month';
SelfPosition :=MainMenu1.Items.IndexOf(file1);
MainMenu1.Items.Insert(SelfPosition+1,PullDownOutput);
for I := 1 to 12 do
begin
Item := TMenuItem.Create(self);
Item.Caption := IntTostr(i)+'month';
Item.GroupIndex :=1;
Item.RadioItem := True;
Item.onclick := MonthClick;
PullDownOutput.Insert(PullDownOutput.Count,Item);
end;
end;
procedure TForm1.MonthClick(Sender:TObject);
begin
(sender as TMenuItem).Checked := true;
end;
end.[/code]
[code=unit] Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus;type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
file1: TMenuItem;
procedure FormCreate(Sender: TObject);
private
procedure MonthClick(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
var
PullDownOutput:TMenuItem;
Item:TmenuItem;
i:integer;
SelfPosition:integer;
begin
PullDownOutput := TMenuItem.Create(self);
PullDownOutput.Caption :='month';
SelfPosition :=MainMenu1.Items.IndexOf(file1);
MainMenu1.Items.Insert(SelfPosition+1,PullDownOutput);
for I := 1 to 12 do
begin
Item := TMenuItem.Create(self);
Item.Caption := IntTostr(i)+'month';
Item.GroupIndex :=1;
Item.RadioItem := True;
Item.onclick := MonthClick;
PullDownOutput.Insert(PullDownOutput.Count,Item);
end;
end;
procedure TForm1.MonthClick(Sender:TObject);
begin
(sender as TMenuItem).Checked := true;
end;
end.[/code]
PullDownOutput?其子项??看代码PullDownOutput应该是有显示的其子项我一般直接用ADD来操作………………insert没试