Как динамически создавать пункты подменю в PopupMenu
procedure TForm1.PopupMenu2Popup(Sender: TObject);
var
mi, msub: TmenuItem;
beginwith (Sender as TPopupMenu) dobegin// Удаляем все пункты меню// while Items.Count > 0 do Items.delete(0);// Предыдущий код имел утечку памяти. Коррекция от Andrew Stewart (astewart@Strobes.co.nz)while Items.Count > 0 do
Items[0].Free;
// Создаем обычный пункт "Первый"
mi := TMenuItem.Create(self);
with mi dobegin
Caption := 'Первый';
OnClick := MyClick;
end;
Items.Insert(0, mi);
// Создаем подменю "Подменю" c двумя пунктами "Подменю1" и// "Подменю2"
mi := TMenuItem.Create(self);
with mi dobegin
Caption := 'Подменю';
msub := TMenuItem.Create(self);
with msub dobegin
Caption := 'Подменю1';
OnClick := MyClick;
end;
Insert(0, msub);
msub := TMenuItem.Create(self);
with msub dobegin
Caption := 'Подменю2';
OnClick := MyClick;
end;
Insert(1, msub);
end;
Items.Insert(1, mi);
end;
end;
procedure TForm1.MyClick(Sender: TObject);
begin
beep;
end;
Динамически создавая пункты подменю в PopupMenu, можно использовать процедуру TForm1.PopupMenu2Popup(Sender: TObject), которая удаляет все существующие пункты меню, создает новый пункт и подменю с двумя подклассами.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.