popmenu怎样动态添加菜单项。
with qry2 do
begin
close;
sql.clear;
sql.add('select 职员名称 from  职员表');
Open
while not eof do
 begin
 {把职员名称加入菜单} 这里该怎样加入菜单项
 end;
 end;

解决方案 »

  1.   

    This example demonstrates how to add and delete menu items to a popup menu at runtime and assign an event handler to the OnClick event.procedure TForm1.AddButtonClick(Sender: TObject);
    var
      index: Integer;
      NewItem: TMenuItem;
    begin
      for index := 0 to 3 do
      begin
        NewItem := TMenuItem.Create(PopupMenu1); // create the new item
        PopupMenu1.Items.Add(NewItem);// add it to the Popupmenu
        NewItem.Caption := 'Menu Item ' + IntToStr(index);
        NewItem.Tag := index;
        NewItem.OnClick = PopupMenuItemsClick;// assign it an event handler
      end;end;procedure TForm1.PopupMenuItemsClick(Sender: TObject);
    begin
      with Sender as TMenuItem do
      begin
        case Tag of
          0:  ShowMessage('first item clicked');
          1:  ShowMessage('second item clicked');
          2:  ShowMessage('third item clicked');
          3:  ShowMessage('fourth item clicked');
        end;
      end;
    end;To edit or destroy an item, grab its pointer via the Items property.procedure TForm1.EditButtonClick(Sender: TObject);
    var
      ItemToEdit: TMenuItem;
    begin
      ItemToEdit := PopupMenu.Items[1];
      ItemToEdit.Caption := 'Changed Caption';
    }procedure TForm1.DestroyButtonClick(Sender: TObject);
    var
      ItemToDelete: TMenuItem;
    begin
      ItemToDelete := PopupMenu.Items[2];
      ItemToDelete.Free;
    end;
      

  2.   

    var
    NewItem:Tmenuitem;
    beginNewItem:=TMenuItem.Create(self);
    NewItem.Caption:='test';
    NewItem.Tag:=1;
    //Newitem.OnClick:=MyClick;
    Mainmenu1.Items.Add(NewItem);
    end;
    popmenu也一样。