Moderador: Moderadores
#include "hwgui.ch"
Function Main
Local oDlg
INIT DIALOG oDlg TITLE "EVENTOS NO DIALOG" AT 0,0 SIZE 800,600 ;
On INIT {||hwg_msginfo("Bloco do Inicio")} ;
On EXIT {||oDlg:Hide(),hwg_msginfo("Bloco do EXIT")}
@ 300,300 SAY oSay CAPTION "Click no X para fechar" size 300,30
oDlg : bActivate:={||oDlg:Show(),hwg_msginfo("Bloco do Activate")}
ACTIVATE DIALOG oDlg CENTER
Return Nil
JoséQuintas escreveu:Como faço pra hwgui executar uma ação antes de uma dialog ser fechada?
INIT DIALOG oDlg TITLE "Nota de Pedido" ;
ICON MEMVAR->SGC_ICON ;
AT 0, 0 SIZE 1008,600 CLIPPER NOEXIT NOEXITESC NOCLOSABLE
@ 340,104 OWNERBUTTON oOwnerbutton1 ID 1001 SIZE 75,40 ;
TEXT 'SAIR' ;
COORDINATES 0, 25, 0, 0 ;
FONT HFont():Add( '',0,-10,400,,,) ;
BITMAP 'EXIT16BMP' FROM RESOURCE TRANSPARENT;
COORDINATES 0, 7, 0, 0 ;
TOOLTIP 'Sai da Rotina / Finaliza Venda' ;
ON CLICK {|| oDlg:oPhantom:SETFOCUS(), IF( nw_vNF > 0.00 , NOTA_DE_PEDIDO_PAGAMENTO_GRAFICO(oDlg, oServer, oQuery3, @nNOMVEN, @nPEDIDOS_ID, @cPEDIDOS_ID, @nCLIENTES_ID, @ne_CNPJ, ;
@ce_xNome, @ne_CEP, @ce_xLgr, @ne_nro, @ce_xBairr, @ce_xMun, @ce_fone, @nPRODUTOS_ID, @ci_xProd, @ce_xCpl, @cNRAZ_SOC, @nNUMITEM, ;
@ni_qCom, @ni_vUnCom, @ni_vProd, @nw_vNF, @nTOTALNOTA, @nTOTALPESO ), oDlg:Close() ) }
METHOD Close() INLINE hwg_EndDialog( ::handle )
IF oDlg:bDestroy != Nil
res := Eval( oDlg:bDestroy, oDlg )
res := Iif( Valtype(res)=="L", res, .T. )
ENDIF
Itamar M. Lins Jr. escreveu:Pq ele pega a saida pela função hwg_EndDialog()
INIT DIALOG ::oFrm TITLE cTitulo AT 20, 0 SIZE 800, 600 ON EXIT { || ::lExit := .T. }
O código do SVN e o teste está ai para vc ver.Tem certeza?
podem testar este caso?
#include "hwgui.ch"
Function Main
Local oDlg, oSay, oBtn
INIT DIALOG oDlg TITLE "EVENTOS NO DIALOG" AT 0,0 SIZE 800,600 ;
On INIT {||hwg_msginfo("Bloco do Inicio")} ;
On EXIT {||oDlg:Hide(),hwg_msginfo("Bloco do EXIT")}
@ 300,100 SAY oSay CAPTION "Click no X para fechar" size 300,30
@ 300,200 button oBtn Caption "SAIR Close" size 200,50 ON CLICK {||oDlg:Close()}
@ 300,400 button oBtn Caption "SAIR EndDialog" size 200,50 ON CLICK {||hwg_EndDialog()}
oDlg : bActivate:={||oDlg:Show(),hwg_msginfo("Bloco do Activate")}
ACTIVATE DIALOG oDlg CENTER
Return Nil
tambem é executado depois do fechamento do DIALOG
ON CLICK {|| oDlg:oPhantom:SETFOCUS(), IF( nw_vNF > 0.00 , NOTA_DE_PEDIDO_PAGAMENTO_GRAFICO(oDlg, oServer, oQuery3, @nNOMVEN, @nPEDIDOS_ID, @cPEDIDOS_ID, @nCLIENTES_ID, @ne_CNPJ, ;Pode colocar esse CODE BLOCK, o bloco todo no ON EXIT da DIALOG que será executado.
@ce_xNome, @ne_CEP, @ce_xLgr, @ne_nro, @ce_xBairr, @ce_xMun, @ce_fone, @nPRODUTOS_ID, @ci_xProd, @ce_xCpl, @cNRAZ_SOC, @nNUMITEM, ;
@ni_qCom, @ni_vUnCom, @ni_vProd, @nw_vNF, @nTOTALNOTA, @nTOTALPESO ), oDlg:Close() ) }
#include "hwgui.ch"
Function Main
Local oDlg, oSay, oBtn, oOBtn
INIT DIALOG oDlg TITLE "EVENTOS NO DIALOG" AT 0,0 SIZE 800,600 ;
On INIT {||hwg_msginfo("Bloco do Inicio")} ;
On EXIT {||oDlg:Hide(),hwg_msginfo("Bloco do EXIT")}
@ 300,100 SAY oSay CAPTION "Click no X para fechar" size 300,30
@ 300,200 button oBtn Caption "SAIR Close" size 200,50 ON CLICK {||oDlg:Close()}
@ 300,300 button oBtn Caption "SAIR EndDialog" size 200,50 ON CLICK {||hwg_EndDialog()}
@ 300,400 OWNERBUTTON oOBtn SIZE 200,50 TEXT "SAIR"
oDlg : bActivate:={||oDlg:Show(), oOBtn:Disable(), hwg_msginfo("Bloco do Activate")}
ACTIVATE DIALOG oDlg CENTER
Return Nil
Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante