Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Проверить открыто ли контекстное меню

Delphi , Компоненты и Классы , Меню

Проверить открыто ли контекстное меню

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
  Using the WM_MENUSELECT message of the form won’t work to check if 
  the popup is open. Simply because the parent of the popup is not the 
  form (check the popup method of TPopupMenu). A workaround is to use 
  the api call yourself : 
}

 type
   TForm1 = class(TForm)
     {...}
     procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
       Shift: TShiftState; X, Y: Integer);

   private
     IsMenuOpen: Boolean;
     procedure WMMENUSELECT(var msg: TWMMENUSELECT); message WM_MENUSELECT;
   end;

    {...}
 implementation

 {...}

 procedure TForm1.WMMENUSELECT(var msg: TWMMENUSELECT);
 begin
   inherited;
   IsMenuOpen := not ((msg.MenuFlag and $FFFF > 0) and
     (msg.Menu = 0));
 end;

 procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X, Y: Integer);
 begin
   if Button = mbRight then
     with ClientToScreen(Point(X, Y)) do
       TrackPopupMenuEx(PopupMenu1.Handle, TPM_LEFTALIGN, X, Y,
         Self.Handle, nil);
 end;

Статья Проверить открыто ли контекстное меню раздела Компоненты и Классы Меню может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Меню ::


реклама

::


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
20.01.2022 01:01:58/0.0005490779876709/0