![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Динамически создаю 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; |
|
#2
|
||||
|
||||
|
Неужели никто не знает? Или я плохо объяснил суть?
Вот процедура Action1Execute: Код:
procedure TDataModule_main.Action1Execute(Sender: TObject); begin // Edit1.Text:=название пункта меню, которое вызвало событие end; Последний раз редактировалось TOJluK, 04.05.2009 в 23:06. |
|
#3
|
||||
|
||||
|
Суть, собсно, ясна... помог бы, да не работал с таким... Смутное подозрение на то, что надо копать к Sender'у...
|
|
#4
|
|||
|
|||
|
Код:
Edit1.Text := (Sender as TMenuItem).Caption; P.S. А, нет... -_- С Action1Execute не пройдет. Можно всем создаваемым Items назначать не Action, а один и тот же метод OnClick, например... Код:
While not IB_Concern_obj.Eof do
begin
NewItem:=TMenuItem.Create(self);
NewItem.OnClick:=AnyItemClick;
NewItem.Caption:=IB_Concern_obj.FieldByName('Name').AsString;
PopupMenu_concern.Items.Add(NewItem);
IB_Concern_obj.Next;
end;
.........
procedure TForm1.AnyItemClick(Sender: TObject);
begin
Edit1.Text := (Sender as TMenuItem).Caption;
end;Последний раз редактировалось Nyctos Kasignete, 04.05.2009 в 23:35. |
|
#5
|
||||
|
||||
|
Спасибо, не додумался назначить не Action, а метод OnClick! Так работает.
|