Советы по Delphi

       

Как динамически создавать пункты подменю в PopupMenu


Примерно так:

procedure TForm1.PopupMenu2Popup(Sender: TObject);
var
mi, msub: TmenuItem;begin
with
(Sender as TPopupMenu) do begin// Удаляем все пункты меню
// 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 do beginCaption := 'Первый';OnClick := MyClick;end;Items.Insert(0, mi);
// Создаем подменю "Подменю" c двумя пунктами "Подменю1" и// "Подменю2"mi := TMenuItem.Create(self);with mi do beginCaption := 'Подменю';msub := TMenuItem.Create(self);with msub do beginCaption := 'Подменю1';OnClick := MyClick;end;Insert(0, msub);
msub := TMenuItem.Create(self);with msub do beginCaption := 'Подменю2';OnClick := MyClick;end;Insert(1, msub);end;Items.Insert(1, mi);end;end;

procedure TForm1.MyClick(Sender: TObject);
begin
beep;end;
[000174]



Содержание раздела