Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизСоздание элементов PopupMenu в Runtime + назначение событий. Найти похожие ветки
← →
_Sergey_ (2006-01-07 14:39) [0]Подскажите, как это можно сделать. Заранее неизвестно, сколько элементов нужно создать. При клике на какой-нибудь элемент должно запускаться событие, которое должно знать, с какого элемента был клик. Или хотя бы его индекс.
← →
Гаврила © (2006-01-07 16:19) [1]
> должно запускаться событие, которое должно знать, с
> какого элемента был клик. Или хотя бы его индекс.
А собственно у тебя в обработчике события есть параметр Sender: TObject
это и есть тот эдемент меню, с которого клик.
procedure TForm1.MenuClick(Sender: Tobject);
var
M: TMenuItem;
begin
M:=(Sender as TMenuItem);
case M.Tag of
1: Procedure1();
2: Procedure2();
3: Procedure3();
4: Procedure4();
5: Procedure5();
end;//case
end;
procedure TForm1.Button1Click(Sender: TObject);
var
M: TMenuItem;
I: integer;
begin
for i:=1 to 5 do
begin
M:=TMenuItem.Create(Self);
PopupMenu1.Items.Add(m);
M.Caption:=Format("Пункт %d", [I]);
M.OnClick:=MenuClick;
M.Tag:=I;
end;
end;
← →
_Sergey_ (2006-01-07 19:13) [2]
> M:=(Sender as TMenuItem);
Вот до этого я и не догадался. Пытался писать Sender.Index, а его не было... :-(. Спасибо!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.048 c