Ajude o site desativando o bloqueador de anúncio

ASSINE A NEWSLETTER

Cadastrando...
PIX uDesenv pix deposito

ADVPL - MENU POP Como abrir menu com o botão direito no grid?

Autor: Eurai Criado: 13/08/2021 Atualizado: 13/08/2021

 

Me enviaram uma pergunta via e-mail solicitando um exemplo para abrir MENU em grid no ADVPL.

Neste artigo, trago esse exemplo com MENU POP.

A abertura de MENU é linkado ao método bRClicked do TcBrowser com a função de MENU.

É possível adicionar mais opções, e a cada opção é possível amarrar com uma static Function. 

O fonte atualizado está no gitHub.

 

#INCLUDE "TOTVS.CH"


/*/{Protheus.doc} UDMENUPP
Menu POP

@type		function
@author		Eurai Rapelli
@since 		2021.08.07
/*/
User Function UDMENUPP()
Local oDlg		:= Nil
Local oBar01	:= Nil 
Local oBtnBmp01	:= Nil   
Local oMsgBar01	:= Nil 
Local oMsgItem01:= Nil   


Private oBrowse		:= Nil
Private oPnlItens	:= Nil
Private aBrowse		:= {{Space(255),Space(255)}}

Private nForeCor	:= CLR_GRAY
Private nBackCor	:= CLR_WHITE

Private nCols  		:= 2

Private oFont12a	:= TFont():New("Arial",12,12,,.F.,,,,.T.,.F.)

oDlg		:= MSDialog():New( 000,000,500,1000,"Universo do Desenvolvedor - Exemplo de Menu POP",,,.F.,,,,,,.T.,,,.T. )
oDlg:lMaximized	:= .T.

oMsgBar01	:= TMsgBar():New(oDlg, "Eurai Rapelli", .F.,.F.,.F.,.F.,RGB(116,116,116),,oFont12a,.F.)
oMsgItem01	:= TMsgItem():New( oMsgBar01,'www.udesenv.com.br', 100,oFont12a,CLR_WHITE,,.T., {|| ShellExecute('OPEN','www.udesenv.com.br','','', 3 ) } )   



oPnlItens		:= TPanel():NEW( 000, 000, "", oDlg, , .T., , CLR_BLUE, , 000, 000, .T., .T.)
oPnlItens:Align	:= CONTROL_ALIGN_ALLCLIENT

oBrowse 				:= TCBrowse():New( 01 , 01, 260, 156,,{"A"},{100},oPnlItens,,,,,{||},,,,,,,.F.,,.T.,,.F.,,, )
oBrowse:SetArray(aBrowse)// Principais commandos
oBrowse:AddColumn( TcColumn():New('A',&(" { || aBrowse[oBrowse:nAt,01] } "),,{|| nForeCor },{||nBackCor }, , /*100*/) )
oBrowse:AddColumn( TcColumn():New('B',&(" { || aBrowse[oBrowse:nAt,02] } "),,{|| nForeCor },{||nBackCor }, , /*100*/) )
oBrowse:Align			:= CONTROL_ALIGN_ALLCLIENT
oBrowse:bRClicked		:= { |o,x,y| MenuPop(o,x,y) } 
oBrowse:LADJUSTCOLSIZE	:= .T.


oBar01		:= TBar():New( oDlg,25,35,.T.,,,'fw_degrade_menu',.T. )
oBtnBmp01 	:= TBtnBmp2():New( 000, 000, 035, 025, 'FINAL' ,,,,{|| nOpc:=00, oDlg:End() }, oBar01,'Sair',,.F.,.F. )


oDlg:Activate(,,,.T.)  

Return( Nil )

/*/{Protheus.doc} MenuPop
Monta Menu, chama na tela

@author		Eurai Rapelli
@since 		17.12.2012

@Example	MenuPop()
/*/
Static Function MenuPop(o,x,y)                               
Local oMenuItem	:= {}

MENU oMenu POPUP

aAdd( oMenuItem, MenuAddItem("Adiciona XXXXX"		,,, .T.,,,, oMenu,{ || Alert('funcao de XXXXX') },,,,,{|| .T.} ) )

ENDMENU

oMenu:Activate( Iif( x > oBrowse:NCLIENTWIDTH, oBrowse:NCLIENTWIDTH/2, x ) , 21 + oBrowse:nRowPos, o )

Return( Nil )



advpl_-_menu_pop_-_botao_direito  

Gostou? Compartilhe com seus amigos e deixe um comentário! 😎

Um abraço, e até a próxima  

 

 

 

 

 

Discussão (0)

Sem comentários ainda

Realize o LOGIN no site para poder comentar