programa travando

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

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

programa travando

Mensagem por JoséQuintas »

Sei lá, programa de sempre, fonte de sempre, agora travando.

Código: Selecionar todos

   DO WHILE .T.
      Cls()
      TelaEntrada()
      IF LastKey() == K_ESC
         EXIT
      ENDIF
trava ao chamar TelaEntrada()

Código: Selecionar todos


FUNCTION TelaEntrada()

   LOCAL cCorAnt, nRow, aControlList := {}, oControl, cToolTipText

   Altd()
   cCorAnt := SetColor()
   SetColor( SetColorNormal() )
   CLS
   nRow := Int( ( MaxRow() - 16 ) / 2 ) - 1
Coloquei Altd() pra ativar debug, mas trava assim mesmo.

Até ontem rodava normalmente.
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/
marco.prodata
Usuário Nível 3
Usuário Nível 3
Mensagens: 238
Registrado em: 30 Nov 2018 10:07
Localização: Caratinga

programa travando

Mensagem por marco.prodata »

Trava antes do altd()? Estranho, o que faz a função Cls() ?
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

programa travando

Mensagem por Kapiaba »

Porque TelaEntrada() está dentro de um LOOPING infinito?

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

programa travando

Mensagem por JoséQuintas »

Ultimamente tem dado uns erros estranhos sem fazer qualquer sentido quanto à solução.

Cls() é função pra limpar a tela, só na área de dados.

Travava na chamada de TelaEntrada().
Acompanhando com DEBUG do harbour, exatamente na chamada de TelaEntrada(), NADA de TelaEntrada() era executado.

Lembrei de uma alteração que fiz no fonte, não entra em nenhuma parte que é executada, uma alteração na API DO WINDOWS de RETURN UNHANDLED pra RETURN HANDLED.
Desfazendo isso resolveu.

Questão mais estranha:
Como pode algo que não é usado causar travamento?
Sim, porque TelaEntrada() tem comandos básicos.
Travar mais na frente, após o uso de API Windows faria todo sentido, não antes do uso.

Ou pior:
TelaEntrada() é a tela de login, não dá pra entrar no aplicativo sem essa tela.
Como pode a alteração funcionar normalmente no dia da alteração, e só travar no dia seguinte?

Pois é....
Tenho acumulado várias ocorrências parecidas com essa.
É como se fosse usado um cache de disco não atualizado.
Acontecer isso com internet pode até ser considerado normal, mas não com uso de disco local.

É normal também acontecer com as pastas salvas no ONEDRIVE, desativei isso faz tempo, e essas nem estão lá, pelo menos que eu saiba.
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