![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Добавление и удаление эл-ов PopurMenu в run-time [D6, WinXP]
Lucifer © (2005-01-30 22:03:00)люди помогите: надо добавить эл-т в попурменю в рантайме.
Но надо сделать так чтобы некая процедура, в зависимости от того на кокой из добавленых эл-тов пользователь нажал (можно определять действие по имени эл-та), выполнялись соответствующие действия? Заранее благодарен за любую информацию!
eLVik (2005-01-31 01:52:00) [1]Можно провернуть такой вариант.
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;;
ActionList1: TActionList;
Action1: TAction;
...
procedure Action1Execute(Sender: TObject);
private
procedure AddItemToPopup(aCaption, aActionName: String);
...
end;
...
procedure TForm1.Action1Execute(Sender: TObject);
begin
// обработчик для Action1
ShowMessage('Действие №1 выполнено');
// что-то там ещё
end;
procedure TForm1.AddItemToPopup(aCaption, aActionName: String);
var
M: TMenuItem;
i: Integer;
begin
M := TMenuItem.Create(self);
for i := 0 to ActionList1.ActionCount - 1 do
if ActionList1.Actions[i].Name = aActionName then begin
M.Action := ActionList1.Actions[i];
Break;
end;
M.Caption := aCaption;
PopupMenu1.Items.Add(M);
end;
чтобы динамически добавить пункт в меню, выполняющий Action1, вызываешь
AddItemToPopup('Выполнить действие №1', 'Action1');