Dinkin Posted November 10, 2023 Share Posted November 10, 2023 Добрый день. Возможно ли отловить событие закрытие меню?...Использую TUniPopupMenu в качестве выпадающего фильтра для таблиц, и хотел при закрытии перезапускать запрос к БД(знаю что есть встроенные функционал фильтров в таблицах, но они не подходят). Quote Link to comment Share on other sites More sharing options...
Sherzod Posted November 10, 2023 Share Posted November 10, 2023 Добрый, А как Вы закрываете? Quote Link to comment Share on other sites More sharing options...
Dinkin Posted November 10, 2023 Author Share Posted November 10, 2023 Просто кликаю вне выпадающего списка. По другому наверное ни как. Quote Link to comment Share on other sites More sharing options...
Dinkin Posted November 10, 2023 Author Share Posted November 10, 2023 Нашел Ваш пост . Вроде правильно перевел на с++ код, но чет нет ни так Quote Link to comment Share on other sites More sharing options...
Sherzod Posted November 10, 2023 Share Posted November 10, 2023 Хмм, честно не силен в c++ builder... Quote Link to comment Share on other sites More sharing options...
Dinkin Posted November 10, 2023 Author Share Posted November 10, 2023 Sherzod ну вариант что Вы предложили в той теме по ссылки, он подходит для меня? 🙂 Quote Link to comment Share on other sites More sharing options...
Sherzod Posted November 10, 2023 Share Posted November 10, 2023 Да, возможно этот код: JSAddListener('hide', 'function(me){Ext.defer(function(){if (me._clicked == false) {ajaxRequest('+ UniPanel1.JSName +', "hidemenu", [])}}, 100)}'); Quote Link to comment Share on other sites More sharing options...
Sherzod Posted November 10, 2023 Share Posted November 10, 2023 @Dinkin Опишите Вашу задачу более детально, возможно Вам лучше использовать форму вместо PopupMenu. Quote Link to comment Share on other sites More sharing options...
Dinkin Posted November 13, 2023 Author Share Posted November 13, 2023 Sherzod Не уверен что формой можно сделать такой эффект (с права выпадающий список). Quote Link to comment Share on other sites More sharing options...
Sherzod Posted November 13, 2023 Share Posted November 13, 2023 @Dinkin Я попробую проанализировать. 1 Quote Link to comment Share on other sites More sharing options...
Sherzod Posted November 13, 2023 Share Posted November 13, 2023 @Dinkin On 11/10/2023 at 8:30 PM, Sherzod said: JSAddListener('hide', 'function(me){Ext.defer(function(){if (me._clicked == false) {ajaxRequest('+ UniPanel1.JSName +', "hidemenu", [])}}, 100)}'); Тогда Вы можете использовать либо "designTime", либо "runTime". В designTime: 1.1. UniMenuButton1.ClientEvents.ExtEvents -> function menuhide(sender, menu, eOpts) { ajaxRequest(sender, "hidemenu", []); } или В runTime: 1.2. Form OnCreate event -> procedure TMainForm.UniFormCreate(Sender: TObject); begin UniMenuButton1.ClientEvents.ExtEvents.Values['menuhide'] := 'function menuhide(sender, menu, eOpts){ajaxRequest(sender, "hidemenu", []);}'; end; 2. UniMenuButton1 OnAjaxEvent -> procedure TMainForm.UniMenuButton1AjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings); begin if EventName = 'hidemenu' then begin // end; end; 1 Quote Link to comment Share on other sites More sharing options...
Dinkin Posted November 13, 2023 Author Share Posted November 13, 2023 Спасибо, все отлично работает! Quote Link to comment Share on other sites More sharing options...
Dinkin Posted November 13, 2023 Author Share Posted November 13, 2023 Заметил если TUniMenuButton, по клику вызывать меню (так как кнопка визуально делится на правую и левую часть, а меню вызывается только по клику с права) так void __fastcall TGroupFrame::UniMenuButtonClick(TObject *Sender) { // Принудительно показываем меню (Так как по нажатию левой части картинки, меню не отображается) Menu->Popup(0,UniMenuButton->Height,UniMenuButton); } //--------------------------------------------------------------------------- , то меню выходит с задержкой в 1-2 секунды, но это мелочи Quote Link to comment Share on other sites More sharing options...
Sherzod Posted November 13, 2023 Share Posted November 13, 2023 1 hour ago, Dinkin said: Заметил если TUniMenuButton, по клику вызывать меню (так как кнопка визуально делится на правую и левую часть, а меню вызывается только по клику с права) так Этот пост может Вам помочь: 1 Quote Link to comment Share on other sites More sharing options...
Dinkin Posted November 13, 2023 Author Share Posted November 13, 2023 круто! 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.