Janela de Processos

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Minduim
Usuário Nível 2
Usuário Nível 2
Mensagens: 59
Registrado em: 06 Abr 2011 13:02
Localização: Santo andré - SP

Janela de Processos

Mensagem por Minduim »

pessoal bom dia;
como faço para criar uma janela que apresente o nome de alguns processos e após apresente o resultado dos processos e ao final fechar esta janela;

estou partindo do exemplo abaixo:

Código: Selecionar todos

   INIT DIALOG oDlg TITLE cTitleWin AT 20,20 SIZE 350,170 FONT HFont():Add( "Georgia",0,-15,,204 ) ;
         STYLE DS_CENTER + WS_VISIBLE + WS_POPUP + WS_VISIBLE + WS_CAPTION + WS_SYSMENU
      @  20, 10 SAY "Iniciando Aplicativo"                  SIZE 250,22
      @  40, 40 SAY "Verificando espaço livre no disco"     SIZE 250,22
      @  40, 70 SAY "Verificando arquivos de index"         SIZE 250,22
      @  40,100 SAY "Verificando renovações cadastrais"     SIZE 250,22

      lRet:= DirSpace()
      if lRet
         @ 300, 40 SAY "Ok"     SIZE 20,22
         lRet:= Reorg()
         if lRet
            @ 300, 70 SAY "Ok"     SIZE 20,22
            lRet:= RenCad()
            if lRet
               @ 300,100 SAY "Ok"     SIZE 20,22
            endif 
         endif  
      endif     
      oDlg:Close()
 
   ACTIVATE DIALOG oDlg
   return lRet
Minduim
Usuário Nível 2
Usuário Nível 2
Mensagens: 59
Registrado em: 06 Abr 2011 13:02
Localização: Santo andré - SP

Janela de Processos

Mensagem por Minduim »

pessoal, bom dia;

modifiquei o exemplo da postagem anterior, conseguindo alguns resultados;
o que ainda não consegui resolver é que quando apresenta na janela o "Ok", o "Ok" anterior é apagado;

exemplo modificado

Código: Selecionar todos

********************************
Static Function SysEntra( cTitleWin )

   local oMsg, lRet

   oMsg = JanelaMsg( cTitleWin )

   lRet:= DirSpace()
   if lRet
      @ 300, 40 SAY "Ok"     SIZE 20,22
      Millisec(1000)
      lRet:= reorg()
      if lRet
         @ 300, 70 SAY "Ok"     SIZE 20,22
         Millisec(1000)  
         lRet:= RenCad()
         if lRet
            @ 300,100 SAY "Ok"     SIZE 20,22
            Millisec(1000)  
         endif  
      endif
      oMsg:Close()
 
   return lRet

********************************
Static Function JanelaMsg( cTitleWin )

   local oDlg

   INIT DIALOG oDlg NOEXIT NOEXITESC NOCLOSABLE TITLE cTitleWin AT 20,20 SIZE 350,170 ;
         FONT HFont():Add( "Georgia",0,-15,,204 )
      @  20, 10 SAY "Iniciando Aplicativo"                  SIZE 250,22
      @  40, 40 SAY "Verificando espaço livre no disco"     SIZE 250,22
      @  40, 70 SAY "Verificando arquivos de index"         SIZE 250,22
      @  40,100 SAY "Verificando renovações cadastrais"     SIZE 250,22

   ACTIVATE DIALOG oDlg NOMODAL
   return oDlg
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Janela de Processos

Mensagem por marcos.gurupi »

Caro, use objetos no SAY e logo q o processo terminar atualizar os SAY com settext()
Marcos Roberto
NetService Software
Minduim
Usuário Nível 2
Usuário Nível 2
Mensagens: 59
Registrado em: 06 Abr 2011 13:02
Localização: Santo andré - SP

Janela de Processos

Mensagem por Minduim »

Marcos, agradeço sua colaboração;
alterei os fontes seguindo sua orientação e consegui o resultado esperado;


exemplo modificado

Código: Selecionar todos

********************************
Static Function SysEntra( cTitleWin )

   local oMsg, oSay01, oSay02, oSay03, cMsg01, cMsg02, lRet

   oMsg = JanelaMsg( cTitleWin )

   oSay01:= oSay02:= oSay03:= ""
   cMsg01:= "Aguarde..."
   cMsg02:= "Ok"

   @ 300, 40 SAY oSay01 CAPTION ""  SIZE 80,22
   @ 300, 70 SAY oSay02 CAPTION ""  SIZE 80,22
   @ 300,100 SAY oSay03 CAPTION ""  SIZE 80,22

   oSay01:SetText( cMsg01 )
   oSay01:Refresh()
   lRet:= DirSpace()
   if lRet
      oSay01:SetText( cMsg02 )
      oSay01:Refresh()
      Millisec(1000)  

      oSay02:SetText( cMsg01 )
      oSay02:Refresh()
      lRet:= reorg()
      if lRet
         oSay02:SetText( cMsg02 )
         oSay02:Refresh()
         Millisec(1000)  

         oSay03:SetText( cMsg01 )
         oSay03:Refresh()
         lRet:= RenCad()
         if lRet
            oSay03:SetText( cMsg02 )
            oSay03:Refresh()
            Millisec(1000)  

         endif 
      endif  
   endif
   oMsg:Close()
    
   return lRet

********************************
Static Function JanelaMsg( cTitleWin )

   local oDlg

   INIT DIALOG oDlg NOEXIT NOEXITESC NOCLOSABLE TITLE cTitleWin AT 20,20 SIZE 400,170 FONT HFont():Add( "Georgia",0,-15,,204 )
      @  20, 10 SAY "Iniciando Servidor Daemon"             SIZE 250,22
      @  40, 40 SAY "Verificando espaço livre no disco"     SIZE 250,22
      @  40, 70 SAY "Verificando arquivos de index"         SIZE 250,22
      @  40,100 SAY "Verificando arquivos de auditoria"     SIZE 250,22

   ACTIVATE DIALOG oDlg NOMODAL
   return oDlg
Responder