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: 783
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 B7, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart, Python + FASTAPI , Android Kotlin
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 783
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 B7, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart, Python + FASTAPI , Android Kotlin
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: 783
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 B7, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart, Python + FASTAPI , Android Kotlin
Claudio Soto
Colaborador
Colaborador
Mensagens: 568
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: 783
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 B7, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart, Python + FASTAPI , Android Kotlin
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 783
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 B7, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart, Python + FASTAPI , Android Kotlin
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 783
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 B7, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart, Python + FASTAPI , Android Kotlin
Claudio Soto
Colaborador
Colaborador
Mensagens: 568
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: 7135
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: 783
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 B7, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart, Python + FASTAPI , Android Kotlin
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7135
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