Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1179178018
{RASkov}
2007-05-15 01:26
2007.06.03
"Уникальный" идентификатор


15-1178197925
Ega23
2007-05-03 17:12
2007.06.03
Как по аглицки сказать


15-1178208918
Ёжик
2007-05-03 20:15
2007.06.03
Объявление экземпляра класса


2-1178997321
Sonic90
2007-05-12 23:15
2007.06.03
ListBox


2-1178898796
M1sT
2007-05-11 19:53
2007.06.03
Ошибка при выполении SQL запроса....





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский