Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2009, 16:33   #1
TOJluK
Пользователь
 
Аватар для TOJluK
 
Регистрация: 13.08.2008
Сообщений: 14
По умолчанию Динамический PopUp и ActionList

Динамически создаю PopUp элементами из базы:
Код:
 While not IB_Concern_obj.Eof do
  begin
  NewItem:=TMenuItem.Create(self);
  NewItem.Action:=Action1;
  NewItem.Caption:=IB_Concern_obj.FieldByName('Name').AsString;
  PopupMenu_concern.Items.Add(NewItem);
  IB_Concern_obj.Next;
  end;
Заранее кол- во эл- ов не известно. Всем присваиваю один Action. Необходимо в обработчике Action1Execute выхватить Caption элемента меню PopUp, которое я нажал.
т.е. тут:
Код:
procedure TDataModule_main.Action1Execute(Sender: TObject);
begin
// Edit1.Text:=название пункта меню, которое вызвало событие
end;
Кто знает как?
TOJluK вне форума Ответить с цитированием
Старый 05.05.2009, 07:56   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Код:
 While not IB_Concern_obj.Eof do
  begin
  NewItem:=TMenuItem.Create(self);
  NewItem.Action:=Action1;
  NewItem.Caption:=IB_Concern_obj.FieldByName('Name').AsString;
  NewItem.Tag := PopupMenu_concern.Items.Count; //в каждом пункте cвойству Tag присваиваем уникальное значение
  PopupMenu_concern.Items.Add(NewItem);
  IB_Concern_obj.Next;
  end;
По значению свойства Tag определяем какой пункт вызван.
Код:
procedure TDataModule_main.Action1Execute(Sender: TObject);
begin
  if (TAction(Sender).ActionComponent <> nil) and (TAction(Sender).ActionComponent is TMenuItem) then
    Edit1.Text := PopupMenu_concern.Items[TMenuItem(TAction(Sender).ActionComponent).Tag].Caption;
end;

Последний раз редактировалось Скандербег; 05.05.2009 в 08:01.
Скандербег вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно использовать ActionMainMenuBar, ActionList и ActionManager A1seg Общие вопросы Delphi 1 18.03.2009 08:29
Impact PopUp axeli Софт 1 28.07.2008 12:02
Popup+dbGrid s.mag БД в Delphi 8 15.05.2008 13:32
popup в dbgrid drakhar БД в Delphi 7 13.02.2008 08:20
Popup menu Mitron Компоненты Delphi 1 02.02.2008 14:26