Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vinicius Callegaro

Como Saber Se O Menu Está Aberto?

Recommended Posts

Você pode fazer algo do tipo:

 

Declare:

procedure WMMenuSelect(var Msg: TWMMenuSelect); message WM_MENUSELECT;

 

Fonte:

procedure TForm1.WMMenuSelect(var Msg: TWMMenuSelect);var	menuItem: TMenuItem;	hSubMenu: HMENU;beginmenuItem:=nil;if (Msg.MenuFlag <> $FFFF) or (Msg.IDItem <> 0) then	begin	if Msg.MenuFlag and MF_POPUP = MF_POPUP then		begin		hSubMenu:=GetSubMenu(Msg.Menu, Msg.IDItem);		menuItem:=Self.Menu.FindItem(hSubMenu, fkHandle);		end	else		menuItem:=Self.Menu.FindItem(Msg.IDItem, fkCommand);	end;if menuItem <> nil then	Label1.Caption:=menuItem.Caption;end;

No caso ele vai mostrar em uma label o caption do menu que o mouse esta passando, sendo assim poderia fazer o que quiser com o menuItem retornado....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é, mas o problema é que eu queria saber se qualquer popup do sistema estivesse aberto. Mas como ia ser um overhead muito grande, acabei fazendo por outro caminho. Valeu pela ajuda ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

for i:=0 to Application.ComponentCount-1 do  if (Application.Components[i] as tpopup).showing then	showmessage ('Existe um popup aberto');

Com isso você deve saber se existe algum popup aberto dentro do seu sistema...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.