[Закрыто]Delphi: один popup на два контрола

yolki

как узнать, на котором контроле был вызван попап?

tima56

Sender.Tag?
Ну или (Sender is [Type] Sender.Name=?, и т.п.

0000

Хе-хе

HWND GetParent (HWND hWnd);

А вообще я вопроса не понял

yolki

Sender.Name - возвращает TMenuItem.Name - имя пункта меню попапа.

yolki

Чтобы стало чуть понятнее:

форма, два эдита, попап, мемо.
у эдитов попап проставлен на попап1.
код CheckMe:

Memo1.Lines.AddSender as TComponent).Name)

Что при вызове с первого эдита, что при вызове со второго получаем всегда CheckMe1

gopnik1994

а хелп почитать?
PopupComponent property (TPopupMenu)
Indicates the component that last displayed the popup menu in response to a right mouse click.
Delphi syntax:
property PopupComponent: TComponent;

yolki

не поможет. ибо вернёт хэндл окна, а не контрола, с которого попап вызвали

yolki

ууу

Corrector

ботай в направлении WindowFromPoint(Mouse.CursorPos)

gopnik1994

знатоки, блин...
вы ему еще хуки навесить посоветуйте...

yolki

Corrector

знатоки, блин...

пример из прогамерского опыта:
по клику на OLE-объет (импортированный Shockware Flash) нужно было выполнять некоторую функцию. Почему-то OnClick не перехватывалось.
Кроме WindowFromPoint в голову ничего не пришло. А как правильно сделать?

0000

Вероятно надо было ловить WM_PARENTNOTIFY или WM_NOTIFY.

tima56

Sender маза смотреть в OnContextPopup контрола, если надо - там же сохранять его куда-нибудь.

gopnik1994

да перестаньте вы гадать, я уже ответил выше, как правильно....
Оставить комментарий
Имя или ник:
Комментарий: