Jump to content

Закрытие popupMenu после смены фокуса.


OlegTimkiv

Recommended Posts

При наведении на кнопку отображаем popupMenu.

procedure TMainForm.btnJornalsMouseEnter(Sender: TObject);
begin
    with TExtPopup(pmJornals).MenuControl.JSInterface do
    begin
        JSCall('showBy', [btnJornals.JSControl]);
        JSCall('setPosition', [btnJornals.Left, btnJornals.Top + btnJornals.Height]);
    end;
end;

Как сделать закрытие popupMenu после смены фокуса?

Link to comment
Share on other sites

2 hours ago, OlegTimkiv said:

Project017.avi

Это решение для меню (mouseout), на данный момент:

procedure TMainForm.UniFormReady(Sender: TObject);
begin
  with TExtPopup(UniPopupMenu1).MenuControl.JSInterface do
  begin
     JSAddListener('afterrender', 'function(){'+
          'var addMenuMouseOut = function(menu) {'+
          'menu.on({'+
          '    mouseleave: function() {'+
          '        this.hide();' + TExtPopup(UniPopupMenu1).MenuControl.JSName +'.hide();'+
          '    }'+
          '});'+
          'menu.items.each(function(item) {'+
          '    if (item.menu) {'+
          '        addMenuMouseOut(item.menu);'+
          '    }'+
          '});'+
          '}; addMenuMouseOut('+ TExtPopup(UniPopupMenu1).MenuControl.JSName +');'+
      '}')
  end;
end;

 

Link to comment
Share on other sites

49 minutes ago, Sherzod said:

Это решение для меню (mouseout), на данный момент:


procedure TMainForm.UniFormReady(Sender: TObject);
begin
  with TExtPopup(UniPopupMenu1).MenuControl.JSInterface do
  begin
     JSAddListener('afterrender', 'function(){'+
          'var addMenuMouseOut = function(menu) {'+
          'menu.on({'+
          '    mouseleave: function() {'+
          '        this.hide();' + TExtPopup(UniPopupMenu1).MenuControl.JSName +'.hide();'+
          '    }'+
          '});'+
          'menu.items.each(function(item) {'+
          '    if (item.menu) {'+
          '        addMenuMouseOut(item.menu);'+
          '    }'+
          '});'+
          '}; addMenuMouseOut('+ TExtPopup(UniPopupMenu1).MenuControl.JSName +');'+
      '}')
  end;
end;

 

Спасибо! Всё работает!   

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...