Lintps Posted February 13 Share Posted February 13 Добрый день! Для UniDBGrid UniPopUpMenu я вызываю через событие OnCellContextClick, для UniTreeView также. Контекстное меню открывается при клике правой клавишей мыши на Windows и при нажатии двумя пальцами на Mac. Для UniImage и некоторых других компонентов, где нет OnCellContextClick, я использую OnMouseUp с текстом "if Button = mbRight then...", но на Mac контекстное меню в таком случае не открывается. Подскажите, пожалуйста, как сделать, чтобы и на Mac тоже работало. Quote Link to comment Share on other sites More sharing options...
Sherzod Posted February 14 Share Posted February 14 Добрый день, 11 hours ago, Lintps said: Для UniImage и некоторых других компонентов, где нет OnCellContextClick Вы можете также попробовать использовать следующий подход: 1. UniImage1.ClientEvents.ExtEvents -> function afterrender(sender, eOpts) { sender.getEl().dom.addEventListener('contextmenu', function(e){ ajaxRequest(sender, '_contextmenu', ['x=' + e.layerX, 'y=' + e.layerY]); e.preventDefault(); }); } 2. UniImage1.OnAjaxEvent -> procedure TMainForm.UniImage1AjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings); begin if EventName = '_contextmenu' then UniPopupMenu1.Popup(Params.Values['x'].ToInteger(), Params.Values['y'].ToInteger(), Sender) end; Quote Link to comment Share on other sites More sharing options...
Lintps Posted February 14 Author Share Posted February 14 2 hours ago, Sherzod said: Добрый день, Вы можете также попробовать использовать следующий подход: 1. UniImage1.ClientEvents.ExtEvents -> function afterrender(sender, eOpts) { sender.getEl().dom.addEventListener('contextmenu', function(e){ ajaxRequest(sender, '_contextmenu', ['x=' + e.layerX, 'y=' + e.layerY]); e.preventDefault(); }); } 2. UniImage1.OnAjaxEvent -> procedure TMainForm.UniImage1AjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings); begin if EventName = '_contextmenu' then UniPopupMenu1.Popup(Params.Values['x'].ToInteger(), Params.Values['y'].ToInteger(), Sender) end; Благодарю. Буду пробовать 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.