Советы по 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 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]




Содержание    Вперед