Erro em hwg_EndDialog() (Era Handle e não objeto)

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Erro em hwg_EndDialog() (Era Handle e não objeto)

Mensagem por JoséQuintas »

A alegria durou pouco.
Alterei pra dialog e....

Código: Selecionar todos

Error BASE/1072  Argument error: <>  
Called from HWG_ENDDIALOG(551)  
Called from (b)HWGUIBROWSE(33)  
Called from HBROWSE:EDIT(1852)  
Called from HBROWSE:BUTTONDBL(1757)  
Called from HBROWSE:ONEVENT(423)  
Called from HWG_DLGBOXINDIRECT(0)  
Called from HDIALOG:ACTIVATE(159)  
Called from HWGUIBROWSE(37)  
Called from PTESHWGUI(15)  
Called from DOPRG(139)  
Called from (b)RUNMODULE(115)  
Funcionou hwg_EndWindow( oDlgPesquisa ), ao usar INIT WINDOW
Alterei pra dialog, mas dá erro em hwg_EndDialog( oDlgPesquisa ), ao usar INIT DIALOG.

O erro é em ENTER.
No clique nada acontece.

O barato é doido.

Alguma idéia?
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
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Error BASE/1004 No exported method: PROPS2ARR

Mensagem por Itamar M. Lins Jr. »

Olá!
Acredito que é um BUG, tenho pego esse erro aqui de 1 cliente apenas. Não sei pq.
Mas agora que vc está com o mesmo problema, vou verificar isso.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Error BASE/1004 No exported method: PROPS2ARR

Mensagem por Itamar M. Lins Jr. »

Olá!
A linha 551 do erro na \source\winapi\hdialog.prg

Código: Selecionar todos

IF ( ( oDlg := Atail( HDialog():aModalDialogs ) ) == Nil .OR. ;
            oDlg:handle != handle ) .AND. ;
            ( oDlg := HDialog():FindDialog( handle ) ) == Nil
         RETURN Nil
      ENDIF == Nil
Quando não tem a janela de ORIGEM outra janela por traz.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Error BASE/1004 No exported method: PROPS2ARR

Mensagem por Itamar M. Lins Jr. »

Olá!
oDlg:handle != handle //Deve ser aqui. Se LOCAL oDLG como é oDlg:handle ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Error BASE/1004 No exported method: PROPS2ARR

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Erro velho detectado pelo Gilberto.
viewtopic.php?f=46&t=25508&p=149137&hilit=props2arr#p149137
E vc mesmo José Quintas tinha dado a resposta.
É no mesmo lugar, mas não o mesmo erro.
Naquela época foi corrigido pra assumir o fonte da janela "pai/mãe" somente se não passar parâmetro.

Justamente no caso atual, não existe janela pai/mãe.
Talvez aquilo já tenha até sido mexido antes, porque eventualmente, como eu fiz, acaba numa situação que a Dialog não tem pai/mãe, e não existe NADA pra servir de referência.

"Talvez" deva existir uma referência "master", independente de janelas, pra servir de default.
Ou talvez até o Windows já faça isso, por isso funciona sem definir fonte.
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Error BASE/1004 No exported method: PROPS2ARR

Mensagem por JoséQuintas »

Sobre o outro erro....

Itamar, lá tá certo

Código: Selecionar todos

      IF ( ( oDlg := Atail( HDialog():aModalDialogs ) ) == Nil .OR. ;
            oDlg:handle != handle ) .AND. ;
            ( oDlg := HDialog():FindDialog( handle ) ) == Nil
         RETURN Nil
      ENDIF
Nessa linha tem oDlg := Atail( HDialog():aModalDialogs )
Então, a própria linha já cria a variável com conteúdo.
Se isso for verdadeiro, já não analisa a outra parte que poderia dar erro.

Mas... acho que tem coisa errada aí.
Vamos analisar direito.
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Error BASE/1004 No exported method: PROPS2ARR

Mensagem por JoséQuintas »

dialog.png
Essa parte tá esquisita, pelo menos por enquanto.
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
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Error BASE/1004 No exported method: PROPS2ARR

Mensagem por Itamar M. Lins Jr. »

Olá!

Código: Selecionar todos

FUNCTION hwg_EndDialog( handle )

   LOCAL oDlg, lRes

   IF handle == Nil
      IF ( oDlg := Atail( HDialog():aModalDialogs ) ) == Nil
         RETURN Nil
      ENDIF
   ELSE
      IF ( ( oDlg := Atail( HDialog():aModalDialogs ) ) == Nil .OR. ;
            oDlg:handle != handle ) .AND. ;
            ( oDlg := HDialog():FindDialog( handle ) ) == Nil
         RETURN Nil
      ENDIF
   ENDIF
   IF oDlg:bDestroy != Nil
      lRes := Eval( oDlg:bDestroy, oDlg )
      IF Valtype( lRes ) != "L" .OR. lRes
         RETURN Iif( oDlg:lModal, Hwg__EndDialog( oDlg:handle ), hwg_Destroywindow( oDlg:handle ) )
      ELSE
         RETURN Nil
      ENDIF
   ENDIF

   RETURN  Iif( oDlg:lModal, Hwg__EndDialog( oDlg:handle ), hwg_Destroywindow( oDlg:handle ) )
Tem um BUG ai na função.

Se oDLG é LOCAL, aqui: oDlg := Atail( HDialog():aModalDialogs ) ) == Nil, se for NIL não sera oDlg:Handle = (objeto), então logo em seguida vai dar o erro.
Aqui: .OR. oDlg:handle != handle, porque oDlg sendo NIL então "NIL:HANDLE" -> (oDlg:handle) != handle ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Error BASE/1004 No exported method: PROPS2ARR

Mensagem por JoséQuintas »

Tem não.
Não pegou o espírito da coisa.

Código: Selecionar todos

A := "minhoca"
IF ( A := 2 ) == Nil .OR. A > 3
Isso acima não dá erro, porque A := 2 atribui 2 à variável, e o .OR. vai fazer número contra número.
O mesmo na rotina da HMG.

Código: Selecionar todos

IF ( oDlg := Atail(...) ) = Nil .OR. oDlg:Handle
Se não for Nil, significa que oDlg tem uma Dialog.
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Erro em Dialog

Mensagem por JoséQuintas »

Voltando à linha que mencionou:

Tudo bem, estávamos vendo um lado do IF, agora é ver o outro.
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
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Erro em Dialog

Mensagem por Itamar M. Lins Jr. »

Olá!
O mesmo erro.

Código: Selecionar todos

Error BASE/1072  Erro nos parƒmetros: <>
Called from source\winapi\hdialog.prg->HWG_ENDDIALOG(551)
Called from source\winapi\hprogres.prg->HPROGRESSBAR:CLOSE(190)
Called from prg\FecharMovimento.prg->PROCESSADIAS(164)
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Erro em Dialog

Mensagem por Itamar M. Lins Jr. »

Olá!
Baguncei o outro tópico, me perdi com esse daqui.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Erro em Dialog

Mensagem por Itamar M. Lins Jr. »

Olá!
Pois é como que .T. ou .F. sera .T. ou .F.:handle != handle ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Erro em Dialog

Mensagem por Itamar M. Lins Jr. »

Olá!
Isso ai é só para dizer:
Se NÃO existe uma janela DIALOG MODAL ou não MODAL, faça isso: SAIA DA FUNÇÃO !

O erro é COMPARAR se é diferente (!=) de HANDLE, pq precisa ser uma classe oDlg com o método HANDLE -> oDlg:Handle != handle.

ATAIL() está transformando oDlg em uma coisa que não é uma CLASSE com o METODO handle.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Erro em Dialog

Mensagem por JoséQuintas »

Não sei como ninguém percebeu o erro.

Código: Selecionar todos

FUNCTION hwg_EndDialog( handle )

   LOCAL oDlg, lRes

   IF handle == Nil
      IF ( oDlg := Atail( HDialog():aModalDialogs ) ) == Nil
         RETURN Nil
      ENDIF
   ELSE
      MsgExclamation( "handle:" + ValType( handle ) )
      IF ( oDlg := Atail( HDialog():aModalDialogs ) ) != Nil
         MsgExclamation( "oDlg:Handle:" + ValType( oDlg:Handle ) )
      ENDIF
Portanto, hwg_EndDialog( oDlgPesquisa ) vai dar erro mesmo.
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