Simplify some code which checks where user has clicked, using the new PopupComponent()

This commit is contained in:
Ansgar Becker
2021-01-16 18:15:12 +01:00
parent e7baba4776
commit b6c9cc1e02
3 changed files with 21 additions and 38 deletions

View File

@ -2895,16 +2895,21 @@ end;
function PopupComponent(Sender: TObject): TComponent;
var
ParentMenu: TMenu;
Menu: TObject;
begin
// Return owner component of clicked menu item
// Return owner component of clicked menu item, probably combined with a TAction
Result := nil;
if not (Sender is TMenuItem) then
Exit;
ParentMenu := (Sender as TMenuItem).GetParentMenu;
if not (ParentMenu is TPopupMenu) then
Exit;
Result := (ParentMenu as TPopupMenu).PopupComponent;
Menu := nil;
if Sender is TAction then
Sender := (Sender as TAction).ActionComponent;
if Sender is TMenuItem then
Menu := (Sender as TMenuItem).GetParentMenu
else if Sender is TPopupMenu then
Menu := Sender;
if Menu is TPopupMenu then
Result := (Menu as TPopupMenu).PopupComponent;
end;