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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2010, 13:56   #1
yuta_86
Пользователь
 
Регистрация: 06.12.2010
Сообщений: 99
Злость обработчик popupmenu

добрый день,

есть popupmenu с 5 пунктами, процедура обработки для всех их одна,

как привязать выбор пункта меню к одному обработчику, в обработчик надо посылать caption пункта меню.

если привязывать выбор каждого пункта к одному обработчику, то думаю это нехорошо.
можно ли как-то отлавливать какой пункт меню выбран?
yuta_86 вне форума Ответить с цитированием
Старый 27.12.2010, 14:06   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
можно ли как-то отлавливать какой пункт меню выбран?
TNotifyEvent type
type TNotifyEvent = procedure (Sender: TObject) of object;

The Sender parameter is the object whose event handler is called. For example,.with the OnClick event of a button, the Sender parameter is the button component that is clicked.

и вот такое if sender is TButton then s:=(sender as Tbuttin).caption;

для popup все аналогично. лень икать в справке Tpopup F1
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 27.12.2010 в 14:09.
evg_m вне форума Ответить с цитированием
Старый 27.12.2010, 14:22   #3
yuta_86
Пользователь
 
Регистрация: 06.12.2010
Сообщений: 99
По умолчанию

не совсем понял (((
Код:
procedure TMainForm.PopupMenu2Change(Sender: TObject; Source: TMenuItem;  Rebuild: Boolean);
var s:string;
begin
if sender is TPopupMenu then s:=(sender as TPopupMenu).Items.Caption;
end;
это имели ввиду?

как быть? что делать

Последний раз редактировалось Stilet; 27.12.2010 в 16:15.
yuta_86 вне форума Ответить с цитированием
Старый 27.12.2010, 16:15   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
это имели ввиду?
А попробовать? Запусти код.
Единственное что я бы еще попробовал так это другую вариацию:
Код:
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
 Caption:=TMenuItem(sender).Caption;
end;
И этот обработчик всем элементам меню назначить.
I'm learning to live...

Последний раз редактировалось Stilet; 27.12.2010 в 16:17.
Stilet вне форума Ответить с цитированием
Старый 27.12.2010, 16:22   #5
yuta_86
Пользователь
 
Регистрация: 06.12.2010
Сообщений: 99
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А попробовать? Запусти код.
Единственное что я бы еще попробовал так это другую вариацию:
Код:
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
 Caption:=TMenuItem(sender).Caption;
end;
И этот обработчик всем элементам меню назначить.
это работает но перед caption появляется &
как его убрать?

Caption:=copy(TMenuItem(sender).Cap tion,2,2); как вариант ?в меню двухзначное число )

в меню двухзначное число )

Последний раз редактировалось Stilet; 27.12.2010 в 16:52.
yuta_86 вне форума Ответить с цитированием
Старый 27.12.2010, 16:54   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Как вариант
Код:
Caption:=StringReplace(TMenuItem(sender).Caption,'&','',[]);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PopupMenu пауэрлифтинг Общие вопросы Delphi 2 03.03.2010 14:52
PopupMenu Патрон Общие вопросы Delphi 7 15.06.2008 14:04
PopupMenu TaTT DoGG Компоненты Delphi 13 23.05.2008 13:19
PopupMenu Teen4jump Общие вопросы Delphi 10 12.03.2008 13:42