como clicar sem clicar ????

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

como clicar sem clicar ????

Mensagem por Fernando queiroz »

na rotina abaixo quero abrir um dialogo mas não tenho nenhum GET somente vou mostrar a criacao dos arquivos na progressbar

tentei de algumas formas mas nao funcionava ai criei um botao que resolveu a parada mas tenho de clicar nele queria um click automatico quando
entrar na rotina

Código: Selecionar todos

#include "hwgui.ch"
************************************************************
FUNCTION abrearquivos(  )
************************************************************ 

  LOCAL oDlg,  oLabel1, oLabel2, oLabel3, oLabel4, oProgressbar1, oProgressbar2, oLabel5


  INIT DIALOG oDlg TITLE "Verificando Arquivos Aguarde..."    AT 0, 0 SIZE 656,208   ;
     STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_SIZEBOX+DS_CENTER 
    ThisNFE := oDlg
	
   @ 580,177 OWNERBUTTON oOwnerbutton1  SIZE 68,28 ;
        TEXT 'Sair'  ;
        COORDINATES 0, 0, 0, 0  ;
        ON CLICK {|| GERAARQUIVOS(), oDlg:Close() }
   @ 14,18 SAY oLabel1 CAPTION "Arquivo:"  SIZE 55,18  
   @ 76,18 SAY oLabel2 CAPTION "nome do arquivo"  SIZE 566,18  
   @ 73,67 SAY oLabel4 CAPTION "nome do Indice"  SIZE 566,18  
   @ 15,66 SAY oLabel3 CAPTION "Indice:"  SIZE 45,18  
   @ 11,122 SAY oLabel5 CAPTION "Total:"  SIZE 45,18  
   @ 12,89 PROGRESSBAR oProgressbar1 SIZE 635,18  BARWIDTH 20 QUANTITY 100 
   @ 12,143 PROGRESSBAR oProgressbar2 SIZE 635,18  BARWIDTH 26 QUANTITY 100    

	
   ACTIVATE DIALOG oDlg  

	

RETURN oDlg:lresult
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

como clicar sem clicar ????

Mensagem por JoséQuintas »

Se fosse Visual Basic...

oDlg:Show()
oDlg:RotinaX

Se fosse GTWVG com Multithread, nem precisaria button.

Tem algum evento on activate() ou on load() ou sei lá o que, que indique quando o trem inicia?
Cuidado pra não confundir o evento de iniciar com o evento da janela ficar ativa.
Janela fica ativa a cada click na janela.
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/
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

como clicar sem clicar ????

Mensagem por Fernando queiroz »

ja tentei com on activate, on init, on tudo que foi jeito, a unica forma foi parando no button
nao tenho ideia de como resolver :% :% :% :% :%
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

como clicar sem clicar ????

Mensagem por MSDN »

Pela lógica, eu faria assim :
1- o componente progressbar fica na janela
2- a ativação do progressbar fica em outra function
3- dispara no evento ON INIT da janela
4- depois de terminado, o controle volta pra function, que decide o que fazer, fecha a janela ou mostra uma mensagem antes
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

como clicar sem clicar ????

Mensagem por Fernando queiroz »

MSDN escreveu:Pela lógica, eu faria assim :
1- o componente progressbar fica na janela
2- a ativação do progressbar fica em outra function
3- dispara no evento ON INIT da janela
4- depois de terminado, o controle volta pra function, que decide o que fazer, fecha a janela ou mostra uma mensagem antes
usando ON INIT do DIALOG nao faz nada fica parado

fiz assim tambem


GERAARQUIVOS()
// ACTIVATE DIALOG oDlg

oDlg:CLOSE()

RETURN oDlg:lresult
******************************************
STATIC FUNCTION GERAARQUIVOS()
******************************************
ACTIVATE DIALOG ThisNFE
ThisNFE:oProgressbar2:SHOW()


ativa a janela mas nao faz nada ate dar um esc
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

como clicar sem clicar ????

Mensagem por Claudio Soto »

Fernando queiroz escreveu:
MSDN escreveu:Pela lógica, eu faria assim :
1- o componente progressbar fica na janela
2- a ativação do progressbar fica em outra function
3- dispara no evento ON INIT da janela
4- depois de terminado, o controle volta pra function, que decide o que fazer, fecha a janela ou mostra uma mensagem antes
usando ON INIT do DIALOG nao faz nada fica parado

fiz assim tambem


GERAARQUIVOS()
// ACTIVATE DIALOG oDlg

oDlg:CLOSE()

RETURN oDlg:lresult
******************************************
STATIC FUNCTION GERAARQUIVOS()
******************************************
ACTIVATE DIALOG ThisNFE
ThisNFE:oProgressbar2:SHOW()


ativa a janela mas nao faz nada ate dar um esc
Nunca usé hwg pero sería algo así: usar el ON INIT del DIALOG y dentro de la rutina GERAARQUIVOS() colocar un DoEvents() o como se llame en hwg. En la rutina GERAARQUIVOS() ir actualizando el ProgressBar e ir llamando DoEvents()
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

como clicar sem clicar ????

Mensagem por Fernando queiroz »

Claudio Soto escreveu:
Fernando queiroz escreveu:
MSDN escreveu:Pela lógica, eu faria assim :
1- o componente progressbar fica na janela
2- a ativação do progressbar fica em outra function
3- dispara no evento ON INIT da janela
4- depois de terminado, o controle volta pra function, que decide o que fazer, fecha a janela ou mostra uma mensagem antes
usando ON INIT do DIALOG nao faz nada fica parado

fiz assim tambem


GERAARQUIVOS()
// ACTIVATE DIALOG oDlg

oDlg:CLOSE()

RETURN oDlg:lresult
******************************************
STATIC FUNCTION GERAARQUIVOS()
******************************************
ACTIVATE DIALOG ThisNFE
ThisNFE:oProgressbar2:SHOW()


ativa a janela mas nao faz nada ate dar um esc
Nunca usé hwg pero sería algo así: usar el ON INIT del DIALOG y dentro de la rutina GERAARQUIVOS() colocar un DoEvents() o como se llame en hwg. En la rutina GERAARQUIVOS() ir actualizando el ProgressBar e ir llamando DoEvents()
NAO FUNCIONA , nem aparece a tela
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

como clicar sem clicar ????

Mensagem por Fernando queiroz »

NO ON INIT do DIALOG tudo acontece antes da tela aparecer

No ON ACTIVATE tambem tudo acontece antes da tela aparecer

entao teria que ser algo que acontece depois da tela aparecer , mas ai ela fica esperando um evento para continuar

agora esse tal evento que nao sei onde colocar para a coisa acontecer :% :% :% :% :%
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

como clicar sem clicar ????

Mensagem por Fernando queiroz »

Pesquisando no FORUM vi que em outra LIB tem o seguinte

ACTIVATE DIALOG oDlg NOWAIT CENTERED

isso resolveria mas na HWGUI nao tem

:? :? :?
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

como clicar sem clicar ????

Mensagem por Claudio Soto »

Intentar usar antes del gerarchivos () oDiag:show () o algo parecido que obligue a mostrar la ventana y dentro de la rutina que actualiza el ProgressBar usar DoEvents.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

como clicar sem clicar ????

Mensagem por sygecom »

Já que tem um botão, pode dar um HIDE nele e executar a FUNCTION dele.
Exemplo:

Código: Selecionar todos

INIT DIALOG oDlg TITLE "Verificando Arquivos Aguarde..."    AT 0, 0 SIZE 656,208   ;
ON INIT {|| oOwnerbutton1:HIDE(), oOwnerbutton1:ONCLICK() };
	     STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_SIZEBOX+DS_CENTER
   ThisNFE := oDlg

	   @ 580,177 OWNERBUTTON oOwnerbutton1  SIZE 68,28 ;

....
....
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

como clicar sem clicar ????

Mensagem por Fernando queiroz »

Error HCUSTOMWINDOW/0 Invalid class member
Called from source\winapi\hcwindow.prg->HOWNBUTTON:ONCLICK(230
sygecom escreveu:Já que tem um botão, pode dar um HIDE nele e executar a FUNCTION dele.
Exemplo:

Código: Selecionar todos

INIT DIALOG oDlg TITLE "Verificando Arquivos Aguarde..."    AT 0, 0 SIZE 656,208   ;
ON INIT {|| oOwnerbutton1:HIDE(), oOwnerbutton1:ONCLICK() };
	     STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_SIZEBOX+DS_CENTER
   ThisNFE := oDlg

	   @ 580,177 OWNERBUTTON oOwnerbutton1  SIZE 68,28 ;

....
....
METHOD AddControl( oCtrl ) INLINE AAdd( ::aControls, oCtrl )
METHOD DelControl( oCtrl )
METHOD AddEvent( nEvent, nId, bAction, lNotify ) ;
INLINE AAdd( iif( lNotify == NIL .OR. !lNotify, ;
::aEvents, ::aNotify ), ;
{ nEvent, nId, bAction } )
METHOD FindControl( nId, nHandle )
METHOD Hide() INLINE ( ::lHide := .T. , hwg_Hidewindow( ::handle ) )
METHOD Show() INLINE ( ::lHide := .F. , hwg_Showwindow( ::handle ) )
METHOD Move( x1, y1, width, height )
METHOD SetColor( tcolor, bColor, lRepaint )
METHOD onEvent( msg, wParam, lParam )
METHOD End()
ERROR HANDLER OnError()
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

como clicar sem clicar ????

Mensagem por sygecom »

Tente mudar de OWNERBUTTON pra BUTTONEX
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

como clicar sem clicar ????

Mensagem por asimoes »

Quero entender isso, essa janela de dialogo é modal ou não modal ?

Se não for modal você quer executar GERAARQUIVOS() ?, se for isso, abra a janela com oDlg:Activate( .T. ) não modal e execute no on init da janela a sua função
GERAARQUIVOS(), com isso não vai precisar de botão
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

como clicar sem clicar ????

Mensagem por asimoes »

Já tentou assim:

Código: Selecionar todos

#include "hwgui.ch"
************************************************************
FUNCTION abrearquivos(  )
************************************************************ 
LOCAL oDlg,  oLabel1, oLabel2, oLabel3, oLabel4, oProgressbar1, oProgressbar2, oLabel5

   INIT DIALOG oDlg TITLE "Verificando Arquivos Aguarde..." ;
               AT 0, 0 ;
               SIZE 656,208   ;
               STYLE WS_POPUP + WS_CAPTION + WS_SYSMENU + WS_SIZEBOX + DS_CENTER ;
               ON INIT {|| GERAARQUIVOS(), oDlg:Close() }
     
    ThisNFE := oDlg
   
   @ 14,18 SAY oLabel1 CAPTION "Arquivo:"  SIZE 55,18  
   @ 76,18 SAY oLabel2 CAPTION "nome do arquivo"  SIZE 566,18  
   @ 73,67 SAY oLabel4 CAPTION "nome do Indice"  SIZE 566,18  
   @ 15,66 SAY oLabel3 CAPTION "Indice:"  SIZE 45,18  
   @ 11,122 SAY oLabel5 CAPTION "Total:"  SIZE 45,18  
   @ 12,89 PROGRESSBAR oProgressbar1 SIZE 635,18  BARWIDTH 20 QUANTITY 100 
   @ 12,143 PROGRESSBAR oProgressbar2 SIZE 635,18  BARWIDTH 26 QUANTITY 100    
   
   oDlg:Activate()  

RETURN oDlg:lresult
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Responder