Página 1 de 2
como clicar sem clicar ????
Enviado: 15 Dez 2017 20:05
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
como clicar sem clicar ????
Enviado: 15 Dez 2017 20:54
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.
como clicar sem clicar ????
Enviado: 15 Dez 2017 22:36
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 :% :% :% :% :%
como clicar sem clicar ????
Enviado: 15 Dez 2017 23:13
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
como clicar sem clicar ????
Enviado: 16 Dez 2017 00:06
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
como clicar sem clicar ????
Enviado: 16 Dez 2017 00:52
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()
como clicar sem clicar ????
Enviado: 16 Dez 2017 01:21
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
como clicar sem clicar ????
Enviado: 16 Dez 2017 01:40
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 :% :% :% :% :%
como clicar sem clicar ????
Enviado: 16 Dez 2017 09:55
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
:? :? :?
como clicar sem clicar ????
Enviado: 16 Dez 2017 10:34
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.
como clicar sem clicar ????
Enviado: 16 Dez 2017 11:46
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 ;
....
....
como clicar sem clicar ????
Enviado: 16 Dez 2017 12:50
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()
como clicar sem clicar ????
Enviado: 17 Dez 2017 14:15
por sygecom
Tente mudar de OWNERBUTTON pra BUTTONEX
como clicar sem clicar ????
Enviado: 17 Dez 2017 20:42
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
como clicar sem clicar ????
Enviado: 17 Dez 2017 20:50
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