Página 1 de 2

Erro atualizar Dialog

Enviado: 01 Ago 2016 16:51
por janio
Ola a todos,

Tenho um Dialog que atualizo de vez em quando a msg para o usuario ir acompanhando o andamento do processo. Funciona bem... ao ser o fato de que de cada 100 execuções (digamos), uma ou duas da erro. Não consegui identificar quando isso ocorre e nem o por que. So sei que eh muito inconstante. Ha dias que não acontece de jeito nenhum. Já em outros, a frequencia é um tanto incomodadora!

O Dialog eh o abaixo! O erro acontece quando atualizo a msg mostrada na janela!

Código: Selecionar todos

**************************************************************
FUNCTION MsgFinalCupom( cMsg, nValor, hbBotao )
**************************************************************
  LOCAL oGroup1, oLabel1, oGroup2, oLabel2, oLabel3

	If hbBotao = Nil
	   hbBotao := .f.
	EndIf

   FechaMsg()

   INIT DIALOG oDlgFinalCupom TITLE "Cria Soft" ;
      COLOR 10342094  ;
      SIZE 596,275  ;
      STYLE DS_CENTER + WS_VISIBLE ;
      ON INIT {|| If( hbBotao = .f., oButMsgFinalCupom:disable(),) }

   @ 12,09 GROUPBOX oGroup1 CAPTION "Status"  SIZE 572,90 ;
        STYLE BS_LEFT  

   @ 21,46 SAY oLabel1 CAPTION cMsg SIZE 556,30 ;
        STYLE SS_CENTER +DT_VCENTER+DT_SINGLELINE  ;
        FONT HFont():Add( '',0,-18,700,,,)

	InkeyGui(30)

	***
	***
        
   @ 13,101 GROUPBOX oGroup2 CAPTION ""  SIZE 572,90 ;
        STYLE BS_LEFT  

   @ 30,120 SAY oLabel2 CAPTION "Troco"  TRANSPARENT SIZE 198,59 ;
        STYLE SS_RIGHT   ;
        FONT HFont():Add( '',0,-48,700,,,)
        oLabel2:FontBold := .T. 

   @ 260,113 SAY nValor TRANSPARENT SIZE 268,68 ;
        STYLE DT_VCENTER+DT_SINGLELINE;
        COLOR 255   ;
        FONT HFont():Add( '',0,-63,700,,,)

   @ 240,202 BUTTONEX oButMsgFinalCupom CAPTION "Ok"   SIZE 98,32 ;
        ON CLICK {|| oDlgFinalCupom:Close() } ;
        STYLE WS_TABSTOP 

	If hbBotao = .f.
		oDlgFinalCupom:Activate(.t.)
	Else
		oDlgFinalCupom:Activate(.f.)
	Endif
	
	InkeyGui(100)

Return .T.

Código: Selecionar todos

*********************************************************
FUNCTION AtualizaMsgFinalCupom(vMensagem)
*********************************************************
	oDlgFinalCupom:ACONTROLS[2]:SETTEXT(vMensagem)

RETURN NIL
O erro (Error BASE/1004 Metodo nao exportado: ACONTROLS) eh nessa linha oDlgFinalCupom:ACONTROLS[2]:SETTEXT(vMensagem)

Alguém tem idéia de que detalhe estou esquecendo?

Janio

Erro atualizar Dialog

Enviado: 01 Ago 2016 19:09
por Toledo
Janio, não seria melhor usar diretamente o nome do controle?

Código: Selecionar todos

oDlgFinalCupom:oLabel1:CAPTION := vMensagem
Abraços,

Erro atualizar Dialog

Enviado: 01 Ago 2016 19:33
por sygecom
Deve ser por que em algum outro momento a variável oDlgFinalCupom que está como PRIVATE está sendo sub-escrita ou já fechou (oDlgFinalCupom:close())

Pode tentar deixar ela assim:

Código: Selecionar todos

*********************************************************
FUNCTION AtualizaMsgFinalCupom(vMensagem)
*********************************************************
try
 oDlgFinalCupom:ACONTROLS[2]:SETTEXT(vMensagem)
catch

end
RETURN NIL

Erro atualizar Dialog

Enviado: 02 Ago 2016 10:38
por asimoes
Jânio,

Tem um tópico falando de comportamento estranho, por conta dos plugins de segurança dos bancos, será esse o seu caso?

Erro atualizar Dialog

Enviado: 02 Ago 2016 13:28
por janio
Já tentei diversas vezes reproduzir o erro em laboratório, mas não consigo. Só sei que o erro existe pq recebo e-mail dos erros qndo acontece no cliente. La acontece. Comigo não. F*da isso ne.
Toledo:
oDlgFinalCupom:oLabel1:CAPTION := vMensagem
Ja fiz desta forma e os erros foram idênticos!
aSimoes:
Tem um tópico falando de comportamento estranho, por conta dos plugins de segurança dos bancos, será esse o seu caso?
São caixas de supermercados e neles não ha qualquer sistema de banco instalado!
SygeCom
*********************************************************
FUNCTION AtualizaMsgFinalCupom(vMensagem)
*********************************************************
try
oDlgFinalCupom:ACONTROLS[2]:SETTEXT(vMensagem)
catch
end
RETURN NIL
Leonardo, estou usando essa solução que vc indicou e resolveu o problema. Até mesmo pq essa msg não é assim obrigatório que o usuário veja a todo momento. Se nos casos em que o erro acontece, o usuário não viu o andamento do processo completo... blz, não tem problema. No próximo cupom ele vê.

Vlw pela dica.

Erro atualizar Dialog

Enviado: 02 Ago 2016 15:25
por asimoes
Janio,

Qual é a versão da hwgui que você tá usando?

Erro atualizar Dialog

Enviado: 02 Ago 2016 15:40
por janio
aSimoes,

Minha versão eh a 2.17, de setembro (se não mim engano). A ultima atualização na versao 2.17 que o Basso disponibilizou eh de Dezembro. A minha eh de setembro, ou seja, uns 2 meses antes da ultima do Basso. Depois o Russo pegou e não sei mais nem o pé e nem a ponta.

Janio

Erro atualizar Dialog

Enviado: 02 Ago 2016 16:01
por asimoes
É a mesma que eu uso, não me aventurei com a 2.19 porque eu vi muitos problemas e teria que modificar muita coisa no código.

Erro atualizar Dialog

Enviado: 02 Ago 2016 16:11
por janio
Beleza,

Vc usa tbm a MiniGUI, não é? Ja que vc conhece as duas (HwGUI e MiniGUI), poderia dizer o que vc acha das duas em termos de facilidade de uso, recursos disponiveis, curva de aprendizado, etc...

Janio

PS: Estou pensando em caminhar por essas terras da MiniGUI, ja que a hwgui se tornou inviável

Erro atualizar Dialog

Enviado: 02 Ago 2016 16:16
por asimoes
Minigui é tranquilo tem uma pasta de samples com muitos exemplos e agora já vem compilada com o harbour 3.4 / mingw 6.1, e tem também a hmg oficial, mas eu ainda prefiro a minigui extended.

Com conhecimentos básicos de harbour criar o hbp, hbm e hbc já é meio caminho para o aprendizado, hwgui permite aquela coisa mix de console/gui, mas com todas as modificações que o russo fez, desanimou.

Erro atualizar Dialog

Enviado: 04 Ago 2016 09:38
por Itamar M. Lins Jr.
A culpa nunca foi do Kresin.
O pessoal foi engessando a Hwgui no xHarbour+BCC 5x, isso é fato. Não usam LINUX. E tinha vários problemas com códigos não tão bem feitos assim.
Agora que ele arrumou e atualizou para UTF8 etc... a Hwgui o pessoal reclama.

A mesma coisa que digo do Windows 10... vamos ver quanto tempo mais ele aguenta a pressão do Linux e de outros sistemas operacionais...
Se não universalizar não vai mais ser aceito.
Veja que os verdadeiros Gurus(quem ainda fazem alguma coisa) no Harbour nem usam Windows. Przmek não usa, nem o Viktor.
O Compilador GCC e outras ferramentas livres continuam crescendo e as Borlands da vida vão fechando...

Saudações,
Itamar M. Lins Jr.

Erro atualizar Dialog

Enviado: 04 Ago 2016 09:43
por asimoes
Por enquanto, vou usando a 2.17 que me atende, até agora consigo compilar sem erros com o harbour 3.4 e mingw 6.1, se parar de compilar, vou avaliar de novo.
Aonde eu faço manutenção de sistema é windows 7 64 e 32, na prefeitura do rio de janeiro onde eu trabalho é tudo windows 7, só tenho um cliente (bico rs) e lá é windows 7.

Erro atualizar Dialog

Enviado: 04 Ago 2016 10:37
por Itamar M. Lins Jr.
É, mas o mundo é grande.
Eu usei Linux por um bom tempo, voltei para o windows, esse negocio de evangelizar já passou... Mas o pessoal sabe que é questão de tempo a M$, sair do mercado de OS, pois os OS´s caiu no domínio público e ninguém é mais dono... Veja as demissões em massa e a quebradeira das empresas de Linguagens de programação.
O Kresin usa Linux, o Alain Aupex ? não sei se é assim que se escreve, lá na França usa Linux e muitos outros...

No Brasil usamos o Windows/Facebook... e nos smarts usamos Linux(Androide)... muita gente nem sabe disso, o Linux cresce de uma forma ou de outra.

Saudações,
Itamar M. Lins Jr.

Erro atualizar Dialog

Enviado: 04 Ago 2016 10:41
por asimoes
É mesmo, o android é legal até que o celular não aceita mais atualizações e os aplicativos não atualizam mais por conta da versão do android, é de graça mas tem o seu preço e é caro.
Obriga, o usuário adquirir um celular novo que suporta a "nova versão gratuita" do android, a velha ideia do consumismo.

Erro atualizar Dialog

Enviado: 04 Ago 2016 11:11
por Itamar M. Lins Jr.
Ola!
não aceita mais atualizações
Aceita, mas quem faz as tais atualizações pode cobrar, os códigos podem ser baixados... É só se interessar por isso.
As empresas não são obrigadas a criarem novos recursos gratuitamente.
No caso da M$ ela obriga aos usuários mudarem compulsoriamente. Não torna acessível para todos os códigos do windows, diferente do Linux e do Android, qualquer empresa pode pegar ler/ver a ideia e fazer melhorias.
Por isso as licenças GPL/LGPL, estão sendo modificadas para não permitir tornar privativo os códigos.

A questão é, posso ganhar dinheiro usando o trabalho dos outros, mas não posso ser dono ou privatizar o meu trabalho(código), uma vez que usei ferramentas(códigos) de outras pessoas livremente para isso.

Saudações,
Itamar M. Lins Jr.