Jump to content
Fivewin Brasil

Problemas ao finalizar o processo


bencz

Recommended Posts

Bom dia...
Tenho um botão no menu, onde, quando clico nele, o programa tecnicamente é fechado, mas o processo continua em execução:
MENUITEM "Sai&r" ACTION oWnd:End()
Conversando com o Kapiaba, ele me apresentou o seguinte:
      FreeResources() // Set Resources To


      Release All
      SysRefresh()


      /*limpia arreglo y llama al colecor de basura de xharbour*/ //-> Lixeira
      HB_GCALL( .T. )


      PostQuitMessage( 0 )  // use sempre na saida do seu programa


      QUIT              // must be QUIT !!!
 

Mas ficou a duvida, como utilizo isto ?

{è um override do metodo end ?

Como posso utilizar tal procecimento ?

Link to comment
Share on other sites

oWnd:End() não fecha a aplicação, fecha somente a Window...

Pra finalizar a aplicação, sempre após fechar a window principal voce tem que dar o QUIT... Eu pra finalizar minha aplicação faço assim:

MENUITEM "Sai&r" ACTION MyQuit()

Function MyQui()

oWndMain:End()

DbCommitAll()
DbCloseAll()

Quit

Return .t.

Bom dia...
Tenho um botão no menu, onde, quando clico nele, o programa tecnicamente é fechado, mas o processo continua em execução:
MENUITEM "Sai&r" ACTION oWnd:End()
Conversando com o Kapiaba, ele me apresentou o seguinte:
      FreeResources() // Set Resources To


      Release All
      SysRefresh()


      /*limpia arreglo y llama al colecor de basura de xharbour*/ //-> Lixeira
      HB_GCALL( .T. )


      PostQuitMessage( 0 )  // use sempre na saida do seu programa


      QUIT              // must be QUIT !!!
 

Mas ficou a duvida, como utilizo isto ?

{è um override do metodo end ?

Como posso utilizar tal procecimento ?

Link to comment
Share on other sites

Desculpe, nao tinha entendido a pergunta:



#include "FiveWin.ch"

static oWnd

function Main()

local oBar
LOCAL hBorland

PRIVATE VERSAOPRODUTO := "1.00", DATAVERSAO := DATE(), HORAVERSAO := TIME()
PRIVATE PUBNUMSER := "24242424242424242424"
PRIVATE DIRATUAL := "C:\MYAPP"
PRIVATE OPERATOR := "kapiaba"
PRIVATE cEstacao := "Minha Rede"

SET CENTURY ON
SET DATE BRITISH
SET EPOCH TO YEAR( DATE() ) - 30

hBorland := LoadLibrary('BWCC32.DLL')

BWCCRegister( GetResources() )

DEFINE WINDOW oWnd TITLE "3D objects Using Borland"

DEFINE BUTTONBAR oBar _3D OF oWnd

DEFINE BUTTON OF oBar ACTION MainSobri()

DEFINE BUTTON OF oBar ACTION ( TERMINAR(), oWnd:End() )

SET MESSAGE OF oWnd TO "3D Objects Using Borland" NOINSET CLOCK DATE KEYBOARD

ACTIVATE WINDOW oWnd

return nil


FUNCTION MainSobri()

LOCAL PULI,PLAO,WT,TABA,OIST,WORK,TABS
Local oDlgI,oFnt,oFnt9,oFntB,oFnt9B,oFnt9I,oFntGB
Local oSay1,oSB1,oSB2,oSB3,oBt
LOCAL oSay2,oSay3,oSay4,oSay5,oSay6,oSay7,oSay8
Local cDescri := "Versão "+VERSAOPRODUTO+" - "+DTOC(DATAVERSAO)+' - '+HORAVERSAO
Local cNumSer := AllTrim(PUBNUMSER)
Local cEstacao := NetName()

/* // ???
DO CASE
CASE TIPODOSO = 0; WT='Windows 95, 98 ou Me'
CASE TIPODOSO = 1; WT='Windows Nt, Xp ou 2000'
CASE TIPODOSO = 2; WT='Windows 3.11'
CASE TIPODOSO = 3; WT='Windows Desconhecido'
ENDCASE
*/

Define Font oFntGB Name "Ms Sans Serif" Size 0, -16 Bold
Define Font oFnt Name "Ms Sans Serif" Size 0, -6
Define Font oFnt9 Name "Ms Sans Serif" Size 0, -10
Define Font oFnt9B Name "Ms Sans Serif" Size 0, -13
Define Font oFnt9I Name "Ms Sans Serif" Size 0, -12 //UnderLine
Define Font oFntB Name "Ms Sans Serif" Size 0, -8 Bold

DEFINE DIALOG oDlgI RESOURCE "DSOBRE" FONT oFnt TRANSPARENT ;
COLORS CLR_BLACK, CLR_WHITE

REDEFINE SAY oSay1 ID 200 Of oDlgI Font oFntGB

REDEFINE SAY oSay2 ID 201 Of oDlgI Font oFnt9

REDEFINE SAY oSay3 Var cDescri ID 100 Of oDlgI Font oFnt9 Color "B+/W"

REDEFINE SAY oSay4 Var cNumSer ID 101 Of oDlgI Font oFnt9B Color "R+/W"

REDEFINE SAY oSay5 Var DIRATUAL ID 102 Of oDlgI Font oFntB

REDEFINE SAY oSay6 Var WT ID 103 Of oDlgI Font oFntB

REDEFINE SAY oSay7 Var OPERATOR ID 105 Of oDlgI Font oFntB

REDEFINE SAY oSay8 Var cEstacao ID 106 Of oDlgI Font oFntB

REDEFINE BUTTON oSB3 ID 111 OF oDlgI //Action VaParaWeb()

oSB3:cToolTip:="Vai para home page da empresa"

oSB3:SetFont(oFnt9I)

REDEFINE BUTTON oBt ID 112 OF oDlgI Action oDlgI:End()

oBt:SetFont(oFnt9I)

Activate dialog oDlgI CENTERED

oFntGB:End()
oFnt:End()
oFnt9:End()
oFnt9B:End()
oFnt9I:End()
oFntB:End()

RETURN NIL

FUNCTION TERMINAR()

FreeResources() // Set Resources To


Release All
SysRefresh()


/*limpia arreglo y llama al colecor de basura de xharbour*/ //-> Lixeira
HB_GCALL( .T. )

PostQuitMessage( 0 ) // use sempre na saida do seu programa


QUIT // must be QUIT !!!

RETURN NIL


DLL32 FUNCTION BWCCRegister( hInst AS LONG ) AS WORD PASCAL LIB "BWCC32.DLL"


Link to comment
Share on other sites

Sair do meio do programa pode deixar recursos abertos e algumas amarrações pendentes na memoria.

O certo vc coloca no inicio do seu prg uma função para determinar que é para executar quando fechar o programa

Para fechar invoque o comando abaixo

WndMain():End()

EXIT PROCEDURE SAIR()

   DBCLOSEALL()
   RESALLFREE()
   FREERESOURCES()

RETURN

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...