Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2012, 05:40   #1
alekola
gcc 4.7.1 Opensuse
Пользователь
 
Аватар для alekola
 
Регистрация: 07.03.2012
Сообщений: 22
По умолчанию Событие у динамического меню

Помогите пожалуйста, проблема получить название нажатого подменю в mainmenu

Создаю меню вот так
Код:
//Заполняем раздел 
// в filelist листе лежит список файлов в папке 
scanmodule(path+'\menu\1c\',filelist);
parentitem:=n1c1; //устанавливаем родителя 1с
for i:=filelist.count-1 downto 0 do
begin
MenuItem :=TMenuItem.Create(Parentitem);
ParentItem.Add(MenuItem);
MenuItem.Caption :=filelist.Strings[i];
menuitem.OnClick:=Form1.occlick;
end;
//Раздел 1с заполнен
А это обработчик события нажатия на выбранное меню
Код Delphi

Код:
procedure Tform1.occlick(Sender: TObject);
begin
 with Sender as TMenuItem do
 Form1.label1.caption:=Items[MenuIndex].Caption;
end;
Компилится, меню строится, но при нажатии на любой из пунктов меню пишет MenuIndex out of range
Понимаю в чем затык, а вот как исправить не доходит.
alekola вне форума Ответить с цитированием
Старый 07.03.2012, 08:43   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вот ведь вами приводите Sender к типу TMenuItem, почему им и не воспользоваться?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.03.2012, 10:00   #3
alekola
gcc 4.7.1 Opensuse
Пользователь
 
Аватар для alekola
 
Регистрация: 07.03.2012
Сообщений: 22
По умолчанию

не хватает умения, подскажите пожалуйста
alekola вне форума Ответить с цитированием
Старый 08.03.2012, 10:47   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
procedure Tform1.occlick(Sender: TObject);
begin
 Form1.label1.caption:=TMenuItem(Sender).Caption;
end;
И все.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
У динамически созданной формы есть событие OnClick, но само событие не происходит Hunter_bog Компоненты Delphi 25 23.01.2012 23:50
Меню codrops (стильное меню), Как сделать чтобы текст не смещался в блоке? AlienNation HTML и CSS 2 28.09.2011 13:17
И сново sendMessage =) Как нажать пункт верхнего меню и меню правой кнопки? TwiX Win Api 9 15.10.2009 01:57
Создание метода Click у динамического меню Alessi Общие вопросы Delphi 2 23.03.2009 11:01
Меню с Items в виде набора Bitmap (как меню редактирования в Word'е) chandrasecar Мультимедиа в Delphi 7 14.01.2009 09:20