Идёт загрузка страницы...

htp://aptem.net.ru





/|\АРТЕМ.NET.RU /|\ - Портал для программистов и не только: Delphi Visual Basic BORLAND С++ PERL PHP HTML

Как динамически создавать пункты подменю в 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 begin
Caption := 'Первый';
OnClick := MyClick;
end;
Items.Insert(0, mi);

// Создаем подменю "Подменю" c двумя пунктами "Подменю1" и
// "Подменю2"
mi := TMenuItem.Create(self);
with mi do begin
Caption := 'Подменю';
msub := TMenuItem.Create(self);
with msub do begin
Caption := 'Подменю1';
OnClick := MyClick;
end;
Insert(0, msub);

msub := TMenuItem.Create(self);
with msub do begin
Caption := 'Подменю2';
OnClick := MyClick;
end;
Insert(1, msub);
end;
Items.Insert(1, mi);
end;
end;

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