Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: CL | DM;

Вниз

Создание элементов 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.04 c
3-1132681869
vladik
2005-11-22 20:51
2006.01.22
сколько записей обработано запросом


6-1128616968
LITTLE RABBIT
2005-10-06 20:42
2006.01.22
Как преобразовать rtf в html ЧТОБ ЭТО РАБОТАЛО


2-1135921876
LionMen
2005-12-30 08:51
2006.01.22
Возврат параметров из хр. процедуры MSSQL


8-1123675869
dDan
2005-08-10 16:11
2006.01.22
Очистить канву PaintBox а


2-1135668296
SergeyG
2005-12-27 10:24
2006.01.22
Отсутствует цвет при печати на принтере