Usar WAIT WINDOW com Minigui Extends

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Usar WAIT WINDOW com Minigui Extends

Mensagem por rubens »

Ola...

Alguém sabe como usar o WAIT WINDOW na Minigui Extends?
Vi no exemplo em C:\MiniGUI\SAMPLES\BASIC\WAIT_WINDOW\demo.prg que é muito simples... mas quando tento usar dá erro de sintaxe no Wait Window.
Daí vi no exemplo que ele inclui o HMG.CH na compilação.... tentei incluir também no meu PRG, compila só que o programa fica executando em segundo plano... não aparece na tela... e para finalizalo tenho que pressionar ctrl+alt+del
p.s. compilo pela IDE

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
bjbernal
Usuário Nível 1
Usuário Nível 1
Mensagens: 31
Registrado em: 06 Ago 2004 17:27

Usar WAIT WINDOW com Minigui Extends

Mensagem por bjbernal »

Eu usei um exemplo, também da pasta SAMPLES (não me lembro o nome) e adaptei para mim !

*****************************************************************************************
Segue o utilitário (winespera.prg) abaixo:
***************************************************************************************************

Código: Selecionar todos

#include "minigui.ch"

//////////////////////////////////////////////////////////////////////////////
FUNCTION WaitWinCreate( cTitle, lCenter, nWRow, nWCol)
   LOCAL cFormName := "WaitWin_" + HB_NtoS( _GetId() ) 
   LOCAL nTime := SECONDS()
   LOCAL aPict := {"FR01","FR02","FR03","FR04","FR05","FR06","FR07","FR08",;
                   "FR09","FR10","FR11","FR12"}
   DEFAULT cTitle := "Aguarde...", lCenter := .T., nWRow := 0, nWCol := 0

   nStaticLogo := 1  // assign a number to display picture

   SET INTERACTIVECLOSE OFF

   DEFINE WINDOW &cFormName ;
     ROW 0 COL 0          ;
     WIDTH 420 HEIGHT 230 ;
     TITLE ''             ;
     MINWIDTH 420 MINHEIGHT 230 ;
     MAXWIDTH 420 MAXHEIGHT 230 ;
     CHILD NOCAPTION      ;
     TOPMOST              ; 
     BACKCOLOR WHITE      ;
     FONT 'Tahoma' SIZE 12

     @ 10, 10 LABEL Label_1   ;
       WIDTH 400 HEIGHT 20 ;
       VALUE "Tempo transcorrido " + TIME() ;
       CENTERALIGN VCENTERALIGN TRANSPARENT

     @ 40, (420-128)/2 IMAGE Image_1 PICTURE aPict[nStaticLogo] ;
       WIDTH 128 HEIGHT 128 ;
       TRANSPARENT

     @ 178, 10 LABEL Label_2   ;
       WIDTH 400 HEIGHT 20 ;
       VALUE cTitle        ;
       CENTERALIGN VCENTERALIGN TRANSPARENT

   END WINDOW

   IF lCenter == .F.
      SetProperty( cFormName, "Row", nWRow )
      SetProperty( cFormName, "Col", nWCol )
   ELSE
      Center Window &cFormName
   ENDIF

   Activate Window &cFormName NoWait

RETURN { cFormName, aPict, nTime } // return the number of windows to then kill him by the window

//////////////////////////////////////////////////////////////////////
FUNCTION WaitWinTimer( aDim, cExtra )
   LOCAL cFormName := aDim[1], aPict := aDim[2], cTime, nTime := aDim[3]

      cTime := cExtra + "      Tempo Transcorrido " + SECTOTIME( SECONDS() - nTime )
      SetProperty( cFormName, "Label_1", "Value", cTime )

      nStaticLogo ++  // the number of display picture
      nStaticLogo := IIF( nStaticLogo > LEN(aPict), 1, nStaticLogo )
      SetProperty( cFormName, "Image_1", "Picture", aPict[nStaticLogo] )

RETURN NIL

FUNCTION WaitWinCreate2( cTitle, lCenter, nWRow, nWCol)
   LOCAL cFormName := "WaitWin_" + HB_NtoS( _GetId() ) 
   LOCAL nTime := SECONDS()
   LOCAL aPict := {"FR01","FR02","FR03","FR04","FR05","FR06","FR07","FR08",;
                   "FR09","FR10","FR11","FR12"}
   DEFAULT cTitle := "Aguarde...", lCenter := .T., nWRow := 0, nWCol := 0
   
   #define CLR2_LIGHTBLUE  { 165, 175, 245 }   

   
   SET INTERACTIVECLOSE OFF

   DEFINE WINDOW &cFormName ;
     ROW 0 COL 0          ;
     WIDTH 400 HEIGHT 64 ;
     TITLE ''             ;
     MINWIDTH 400 MINHEIGHT 64 ;
     MAXWIDTH 400 MAXHEIGHT 64 ;
     CHILD NOCAPTION      ;
     TOPMOST              ; 
     BACKCOLOR CLR2_LIGHTBLUE ;
     FONT 'Tahoma' SIZE 12
/*
     @ 10, 10 LABEL Label_1   ;
       WIDTH 400 HEIGHT 20 ;
       VALUE cTitle ;
       CENTERALIGN VCENTERALIGN TRANSPARENT
*/
      @ 16, 10 LABEL Label_1 VALUE cTitle WIDTH 380 HEIGHT 24 FONT 'Arial' SIZE 14 ;
         FONTCOLOR BLUE BOLD BACKCOLOR CLR2_LIGHTBLUE CENTERALIGN



   END WINDOW

   IF lCenter == .F.
      SetProperty( cFormName, "Row", nWRow )
      SetProperty( cFormName, "Col", nWCol )
   ELSE
      Center Window &cFormName
   ENDIF

   Activate Window &cFormName NoWait

RETURN cFormName




//////////////////////////////////////////////////////////////////////
FUNCTION WaitWinClose( cFormName )

   SET INTERACTIVECLOSE ON

   Domethod( cFormName, "Release" )

   DO MESSAGE LOOP

RETURN NIL
*************************************************************************************************
Exemplo de como usar o utilitario acima:
***************************************************************************************************

Código: Selecionar todos

Function exemplo()
  Local sformwait := ""
  
  sformwait := WaitWinCreate2( 'Aguarde...' ) // cria o form de espera, tem dois modos a escolher (WaitWinCreate e WinWaitCreate2)
  		executa_tarefa()
  WaitWinClose( sformwait )  // encerra o form de espera
Return nil
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Usar WAIT WINDOW com Minigui Extends

Mensagem por Toledo »

Rubens, tente usar direto a função WaitWindow(), ai não precisa chamar HMG.CH.

Por exemplo:

Código: Selecionar todos

WaitWindow( "Sua mensagem...", .F. )
Veja comando correspondente que está no CH:
#xcommand WAIT WINDOW <message> => WaitWindow( <message>, .F. )

#xcommand WAIT WINDOW <message> NOWAIT => WaitWindow( <message>, .T. )

#xcommand WAIT CLEAR => WaitWindow()
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
bjbernal
Usuário Nível 1
Usuário Nível 1
Mensagens: 31
Registrado em: 06 Ago 2004 17:27

Usar WAIT WINDOW com Minigui Extends

Mensagem por bjbernal »

Desculpa se o meu post acima ficou mau estilizado. Parece que o editor do fórum bugou ! Espero que tenha conseguido tirar proveito !
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Usar WAIT WINDOW com Minigui Extends

Mensagem por rubens »

Boa noite...

Bjbernal a sua função tá demais para o que eu tô querendo de qualquer forma abre possibilidades... obrigado...

Toledo... era isso mesmo que tava procurando... bem simples e prático funcionou direitinho... obrigado

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usar WAIT WINDOW com Minigui Extends

Mensagem por JoséQuintas »

Só comentário:

Vocês nunca estranharam esse comando?
O Harbour tem o comando WAIT, não faz confundir?

Quando digo que as LIBs "des-ensinam" Harbour nem tinha visto essas coisas, parece pior do que eu pensava....

Num outro post tem o DO EVENTS também, que não é o comando DO...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Usar WAIT WINDOW com Minigui Extends

Mensagem por Nascimento »

gostei vou testar porque tentei algumas vezes deu erro , então deixei sem usar
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usar WAIT WINDOW com Minigui Extends

Mensagem por JoséQuintas »

Avisar só por precaução:

Se não tiver o #include da minigui, vai acabar executando o comando padrão do Harbour/xHarbour que não tem nada a ver.
Não sei se por isso pode não ter funcionado da outra vez.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder