Clipper On Line • Ver Tópico - como clicar sem clicar ????

como clicar sem clicar ????

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

como clicar sem clicar ????

Mensagempor Fernando queiroz » 15 Dez 2017 19:05

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

#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
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

como clicar sem clicar ????

Mensagempor JoséQuintas » 15 Dez 2017 19:54

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

como clicar sem clicar ????

Mensagempor Fernando queiroz » 15 Dez 2017 21:36

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
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

como clicar sem clicar ????

Mensagempor MSDN » 15 Dez 2017 22:13

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
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 741
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 178 vezes
Mens.Curtidas: 123 vezes

como clicar sem clicar ????

Mensagempor Fernando queiroz » 15 Dez 2017 23:06

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
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

como clicar sem clicar ????

Mensagempor Claudio Soto » 15 Dez 2017 23:52

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
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes

como clicar sem clicar ????

Mensagempor Fernando queiroz » 16 Dez 2017 00:21

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: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

como clicar sem clicar ????

Mensagempor Fernando queiroz » 16 Dez 2017 00:40

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: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

como clicar sem clicar ????

Mensagempor Fernando queiroz » 16 Dez 2017 08:55

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
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

como clicar sem clicar ????

Mensagempor Claudio Soto » 16 Dez 2017 09:34

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 de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes

como clicar sem clicar ????

Mensagempor sygecom » 16 Dez 2017 10:46

Já que tem um botão, pode dar um HIDE nele e executar a FUNCTION dele.
Exemplo:
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
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

como clicar sem clicar ????

Mensagempor Fernando queiroz » 16 Dez 2017 11:50

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:
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
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

como clicar sem clicar ????

Mensagempor sygecom » 17 Dez 2017 13:15

Tente mudar de OWNERBUTTON pra BUTTONEX
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

como clicar sem clicar ????

Mensagempor asimoes » 17 Dez 2017 19:42

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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

como clicar sem clicar ????

Mensagempor asimoes » 17 Dez 2017 19:50

Já tentou assim:
#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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Próximo



Retornar para HwGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro