Форум: "Начинающим";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];
Вниздинамическое создание элементов в TPopupMenu и обработка Найти похожие ветки
← →
AlexeiBerkov © (2007-05-15 18:12) [0]Доброго всем времени суток!
На форме есть компонент TPopupMenu.
Его элементы я создаю динамически. При этом в свойстве OnClick я указываю некий свой метод. Всё отлично! Всё работает! НО ! Возникает вопрос: как мне в этом обработчике (в этой функции) узнать имя токо пункта меню, которым был вызван обработчик?
Ниже привожу кусок программного кода:
type
PopupMenu: TPopupMenu;
procedure MyPopupHandler(Sender: TObject); // собственно обработчик
procedure genereteMenu(); // генератор меню
.............
procedure TMainForm.genereteMenu();
var
MyItem: array[0..10] of TMenuItem;
i: Integer;
nameOfComponent:string;
begin
for i := 0 to 10 do begin
nameOfComponent:="Item" + inttostr(i);
MyItem[i] := TMenuItem.Create(Self);
MyItem[i].Caption := "New item " + IntToStr(i);
MyItem[i].OnClick:=MyPopupHandler;
MyItem[i].Name:=nameOfComponent;
PopupMenu.Items.Add(MyItem[i]);
end;
end;
procedure TMainForm.MyPopupHandler(Sender: TObject);
begin
with Sender as TMenuItem do begin
// вот тут и возникают вопросы
end;
ShowMessage("А я обработчик");
end;
← →
G_M_S © (2007-05-15 18:21) [1]При создании компонента -
MyItem[i].TAG := i;
В обработчике:
case (Sender as TMenuItem).Tag of
1:begin
...
end;
..........
← →
AlexeiBerkov © (2007-05-15 18:23) [2]
> MyItem[i].TAG := i;
Работает!
Спасибо!
Долго мучАлся....
← →
jaggies (2007-05-15 18:38) [3]посмотри свойства сендера
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.056 c