LiYing,
procedure TEditButton.TGlyph.WndProc(var Message: TMessage);
var
LPoint: TPoint;
begin
...
WM_LBUTTONDOWN:
if FButton.FDropDownMenu <> nil then
begin
if not (csDesigning in Parent.ComponentState) then
begin
LPoint := ClientToScreen(Point(0, FButton.EditControl.Height));
FButton.FDropDownMenu.Popup(LPoint.X, LPoint.Y);
end;
end
...
end;
Как видим TEditButton игнорирует PopupComponent, поэтому узнать кто вызывает меню не получится никак. Разве что если сделать полностью свой класс TEditButton, т.к. тип TGlyph амба зачем-то засунула в приватную секцию этого класса, т.е. даже в наследнике до неё не добраться...