Вниз
Скачать: CL | DM;

Добавление и удаление эл-ов PopurMenu в run-time   Найти похожие ветки 

 
Lucifer ©   (2005-01-30 22:03) [0]

люди помогите: надо добавить эл-т в попурменю в рантайме.
Но надо сделать так чтобы некая процедура, в зависимости от того на кокой из добавленых эл-тов пользователь нажал (можно определять действие по имени эл-та), выполнялись соответствующие действия?  Заранее благодарен за любую информацию!


 
eLVik ©   (2005-01-31 01:52) [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");



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.043 c
14-1106646718
Cosinus
2005-01-25 12:51
2005.02.13
Отключение в ХР SP2 брэндмауера или как там его...


3-1105698824
БареллО
2005-01-14 13:33
2005.02.13
Подстановка в DBGrid


14-1106705763
AndB
2005-01-26 05:16
2005.02.13
IT-шные рацпредложения


8-1098903047
Alein
2004-10-27 22:50
2005.02.13
Эффект Bevel (как в Photoshope)


3-1104235522
Некто
2004-12-28 15:05
2005.02.13
отсутствует свойство в IBTransaction




   Наверх