x11 Posted May 24, 2020 Posted May 24, 2020 Т.к. у TUnimMenu отсутствует свойство(метод) HideOnClick, то я решил воспользоваться событием TUnimMenu.OnClick. procedure TfmmMyObjects.popupMenuClick(Sender: TUnimMenuItem); begin popupMenu.Visible := False; end; Но меню не скрывается. Приходится дописывать строку (popupMenu.Visible := False) у каждого пункта меню. P.S. Если есть метод Show, то почему бы не добавить метод Hide? Quote
Sherzod Posted May 25, 2020 Posted May 25, 2020 9 hours ago, x11 said: Но меню не скрывается. Приходится дописывать строку (popupMenu.Visible := False) у каждого пункта меню. procedure TMainmForm.UnimMenu1Click(Sender: TUnimMenuItem); begin if Sender.MenuId = 2 then Close else begin ShowMessage(Sender.Caption); Sender.Parent.Visible := False; end; end; ? Quote
x11 Posted May 25, 2020 Author Posted May 25, 2020 Меню не закрывается. ShowMessage не отображается. Пункт с ID = 2 присутствует. Quote
Sherzod Posted May 25, 2020 Posted May 25, 2020 Я проверил это на примере: \FMSoft\Framework\uniGUI\Demos\Touch\Menu Quote
x11 Posted May 25, 2020 Author Posted May 25, 2020 В том примере OnClick работает. Тогда вопрос, а что может мешать работать событию OnClick у меня в приложении? Quote
Sherzod Posted May 25, 2020 Posted May 25, 2020 2 minutes ago, x11 said: Тогда вопрос, а что может мешать работать событию OnClick у меня в приложении? Возможно Action. Quote
Sherzod Posted May 25, 2020 Posted May 25, 2020 Также, можете попробовать использовать этот код, для всех Item'ов: procedure TMainmForm.UnimFormReady(Sender: TObject); begin UniSession.AddJS( 'Ext.getBody().addListener("click", function(e, t) {'+ ' if (Ext.getCmp(t.getAttribute("data-componentid")).parent) {'+ ' Ext.getCmp(t.getAttribute("data-componentid")).parent.hide();'+ ' }'+ ' }, null, {'+ ' delegate: ".x-actionsheet-body-el button"'+ ' });' ); end; Quote
x11 Posted May 25, 2020 Author Posted May 25, 2020 2 hours ago, Sherzod said: Возможно Action. значит нужно либо глобальное свойство HideOnClick для всего меню, либо для каждого отдельного пункта. Quote
Sherzod Posted May 25, 2020 Posted May 25, 2020 1 minute ago, x11 said: значит нужно либо глобальное свойство HideOnClick Попробуйте вышеуказанное решение. Quote
x11 Posted May 25, 2020 Author Posted May 25, 2020 Честно, говоря, мне легче добавить в каждый пункт меню по строке popupMenu.Visible := False; И в будущем надеяться, что разработчики добавят HideOnClick, чем нагромождать форму дополнительным JS кодом. Quote
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.