Clipper On Line • Ver Tópico - Erro em hwg_EndDialog() (Era Handle e não objeto)

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

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

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

Mensagempor JoséQuintas » 27 Out 2021 14:48

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

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, 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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Error BASE/1004 No exported method: PROPS2ARR

Mensagempor Itamar M. Lins Jr. » 27 Out 2021 14:51

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

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Error BASE/1004 No exported method: PROPS2ARR

Mensagempor Itamar M. Lins Jr. » 27 Out 2021 14:56

Olá!
A linha 551 do erro na \source\winapi\hdialog.prg
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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Error BASE/1004 No exported method: PROPS2ARR

Mensagempor Itamar M. Lins Jr. » 27 Out 2021 15:13

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

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Error BASE/1004 No exported method: PROPS2ARR

Mensagempor JoséQuintas » 27 Out 2021 16:42

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, 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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Error BASE/1004 No exported method: PROPS2ARR

Mensagempor JoséQuintas » 27 Out 2021 17:49

Sobre o outro erro....

Itamar, lá tá certo

      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, 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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Error BASE/1004 No exported method: PROPS2ARR

Mensagempor JoséQuintas » 27 Out 2021 17:54

dialog.png


Essa parte tá esquisita, pelo menos por enquanto.
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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Error BASE/1004 No exported method: PROPS2ARR

Mensagempor Itamar M. Lins Jr. » 27 Out 2021 17:59

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

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Error BASE/1004 No exported method: PROPS2ARR

Mensagempor JoséQuintas » 27 Out 2021 18:08

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

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.

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, 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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Erro em Dialog

Mensagempor JoséQuintas » 27 Out 2021 20:19

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, 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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Erro em Dialog

Mensagempor Itamar M. Lins Jr. » 27 Out 2021 20:23

Olá!
O mesmo erro.
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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Erro em Dialog

Mensagempor Itamar M. Lins Jr. » 27 Out 2021 20:24

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

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Erro em Dialog

Mensagempor Itamar M. Lins Jr. » 27 Out 2021 20:32

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

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Erro em Dialog

Mensagempor Itamar M. Lins Jr. » 27 Out 2021 20:39

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

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Erro em Dialog

Mensagempor JoséQuintas » 27 Out 2021 20:46

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

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, 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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Próximo



Retornar para HwGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 8 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