[Закрыто]Delphi: один popup на два контрола
Ну или (Sender is [Type] Sender.Name=?, и т.п.
HWND GetParent (HWND hWnd);
А вообще я вопроса не понял
![](/images/graemlins/frown.gif)
Sender.Name - возвращает TMenuItem.Name - имя пункта меню попапа.
![](/user/upload/file3986.png)
форма, два эдита, попап, мемо.
у эдитов попап проставлен на попап1.
код CheckMe:
Memo1.Lines.AddSender as TComponent).Name)
Что при вызове с первого эдита, что при вызове со второго получаем всегда CheckMe1
![](/images/graemlins/wink.gif)
PopupComponent property (TPopupMenu)
Indicates the component that last displayed the popup menu in response to a right mouse click.
Delphi syntax:
property PopupComponent: TComponent;
не поможет. ибо вернёт хэндл окна, а не контрола, с которого попап вызвали
![](/smiles/pop.gif)
ботай в направлении WindowFromPoint(Mouse.CursorPos)
вы ему еще хуки навесить посоветуйте...
![](/images/graemlins/laugh.gif)
знатоки, блин...
пример из прогамерского опыта:
по клику на OLE-объет (импортированный Shockware Flash) нужно было выполнять некоторую функцию. Почему-то OnClick не перехватывалось.
Кроме WindowFromPoint в голову ничего не пришло. А как правильно сделать?
Вероятно надо было ловить WM_PARENTNOTIFY или WM_NOTIFY.
Sender маза смотреть в OnContextPopup контрола, если надо - там же сохранять его куда-нибудь.
да перестаньте вы гадать, я уже ответил выше, как правильно....
Оставить комментарий
yolki
как узнать, на котором контроле был вызван попап?