Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.13;
Скачать: 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 вся ветка

Текущий архив: 2005.02.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
14-1106408181
Artvz
2005-01-22 18:36
2005.02.13
Кто нибудь знает ресурс посвящённый алгоритмам и разработке


1-1107078546
MakedoneZ
2005-01-30 12:49
2005.02.13
Что означает ошибка "Invalid variant type convertion".


9-1099757382
Creep
2004-11-06 19:09
2005.02.13
Rotate in OpenGL


1-1107164752
Павел
2005-01-31 12:45
2005.02.13
Прорисовка TPanel


14-1106738265
Rule
2005-01-26 14:17
2005.02.13
Подскажите друзья ссылки на клипарты ...