Sistema fechando ao pressionar a tecla c

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

Moderador: Moderadores

fenixsorocaba
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 03 Jul 2019 11:40
Localização: SOROCABA/SP

Sistema fechando ao pressionar a tecla c

Mensagem por fenixsorocaba »

boa tarde a todos! com o auxilio de nosso mestre toledo converti um sistema de emissao de ct-e do clipper para o harbour 3.2, utilizando menu grafico, barra de ferramentas e status bar. tudo ficou excelente, até que fomos usar teclas de consulta que utilizam a tecla [c] para pesquisar códigos etc..no sistema em clipper funciona perfeitamente. no sistema convertido, ao se teclar c em qualquer tela, mesmo na tela inicial o sistema fecha sem aviso, como se fosse uma tecla de atalho para fechar...isto é uma caracteristica do harbour, ou é uma caracteristica de alguma lib que eu esteja usando, como o menu grafico ou barra de ferramentas? muito obrigado a todos, bom trabalho!
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

Sistema fechando ao pressionar a tecla c

Mensagem por MSDN »

Amigo, qual lib gráfica o Toledo usou para a conversão do seu sistema ? Só para ficar mais fácil te ajudar nesse problema.

Abraços
fenixsorocaba
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 03 Jul 2019 11:40
Localização: SOROCABA/SP

Sistema fechando ao pressionar a tecla c

Mensagem por fenixsorocaba »

boa tarde Marcelo, grato pelo retorno.

como alteração no inicio do sistema novo (prg main) :

#include "inkey.ch"
#include "hbgtinfo.ch"
#include "wvtwin.ch"
#include "hbgtwvg.ch"
#include "hbdyn.ch"

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
REQUEST HB_GT_WVT
REQUEST HB_GT_WGU
REQUEST HB_GT_WVG

e no prg especifico para as funcoes:

#include "hwgui.ch"
#include "harupdf.ch"
#include "inkey.ch"
#include "hbdyn.ch"

obrigado,

Tales
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Sistema fechando ao pressionar a tecla c

Mensagem por asimoes »

Boa tarde,

Gostaria de ver o código onde acontece o problema.

Outra coisa só para entender.

#include "hwgui.ch"
#include "harupdf.ch" // vai gerar pdf ?
#include "inkey.ch" // em janela gráfica não tem necessidade, pode remover.
#include "hbdyn.ch" // vai carregar alguma dll ?

Se nas interrogações não sabe ou não vai usar pode remover.
►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)
fenixsorocaba
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 03 Jul 2019 11:40
Localização: SOROCABA/SP

Sistema fechando ao pressionar a tecla c

Mensagem por fenixsorocaba »

boa tarde asimoes!

sobre as novas indagacoes, trata-se de um sistema em harbour 3.2 console, que se utiliza de algumas telas windows (msgwin(" ")) e outras de escolha sim/nao (msgsimnao()), somente para modernizar um pouco a experiencia com o usuario. o sistema gera tambem em janela windows previsao de relatorio em tela, seleciona a impressora e gera pdf e backup (tudo em janelas windows, fica muito bom, claro considerando se tratar de programacao console ainda...)
eu nao saberia dizer se estão utilizando alguma lib externa, nao tenho este conhecimento.

enfim, são muitas funções novas e bem vindas, mas parece que no meu caso específico possibilita que o usuário consiga burlar as opções disponiveis em qualquer tela, como se o sistema fosse ou tivesse um atalho windows para fechar (c signifique close, talvez??). qualquer outra tecla pode ser pressionada que nada ocorre, se for a letra c ele fecha sem deixar qualquer log.
talvez seja até um bug interno de umas dessa funções (barra de ferramentas que está sempre ativa em todas as telas por exemplo), dificultando ainda mais descobrir a causa..

já tirei todas as perguntas que tinha que utilizavam a letra c, como por exempo [c]onsulta, [c]ódigo, etc, e aparentemente resolveu, mas gostaria de saber se alguem ja passou por isso.

obs: o sistema original em que não acontece isso (antes da conversão) está em xharbour 1.2 console também..

abaixo encaminho parte do prg que trata da barra de ferramentas utilizada, sendo que até bloqueei a saida, para evitar que o usuario saida do sistema com arquivos abertos, por exemplo:

*****************************************
FUNCTION Toolbar() //funcao para criar barra de ferramentas
LOCAL oToolbar
oToolbar := WvgToolBar():New( wvgSetAppWindow(), , { 0, 0 }, { 0, 0 }, , .T. )
oToolbar:style := 1
oToolbar:borderStyle := 1
oToolbar:buttonWidth := 40
oToolbar:buttonHeight := 53
oToolbar:imageWidth := 32
oToolbar:imageHeight := 32
oToolbar:showToolTips := .T.
oToolbar:Create()
oToolbar:addItem( "Coleta", "BF_01" ) //parametros de addItem(): ToolTip (legenda) e Nome da Imagem (ver arquivo open_res.rc)
oToolbar:AddItem( "CTE", "BF_02" )
oToolbar:AddItem( "MDFE", "BF_03" )
oToolbar:AddItem()
oToolbar:AddItem( "Organiza", "BF_04" )
oToolbar:AddItem( "Backup", "BF_05" )
oToolbar:AddItem( "Consulta Status", "REL_BUSCA" )

oToolbar:AddItem()
oToolbar:AddItem( "Consulta CEP", "BF_06" )
oToolbar:AddItem( "Ajuda", "BF_07" )
* oToolbar:AddItem()
* oToolbar:AddItem( "Finaliza", "REL_EXIT" )
oToolbar:ButtonClick := { | oBtn | ExeToolBar( oBtn:index ) } //oBtn:index vai retornar o numero da opcao escolhida...
//cada addItem() (mesmo sem parametros) acima gera um numero de opcao, entao Coleta=1, CTE=2, MDFE=3, Organiza=5, Backup=6, etc
RETURN NIL

*****************************************
FUNCTION ExeToolBar( nIndex_ )
if nIndex_==1
MENUX("BF_Opcao(1)","Coleta")
elseif nIndex_==2
MENUX("BF_Opcao(2)","CTE")
elseif nIndex_==3
MENUX("BF_Opcao(3)","MDFE")
elseif nIndex_==5
MENUX("ORGANIZA()","Organiza")
elseif nIndex_==6
Fazer_Backup()
elseif nIndex_==7
ConsStatus() && verifica status do sefaz
elseif nIndex_==9
ConCEP() && consulta cep
elseif nIndex_==10
AJUDA()
elseif nIndex_==11
* SairProg() && nao utilizado
endif
//observe que pulei o nIndex igual a 4, 8 e 11, que corresponde ao uso da funcao addItem() (sem parametros) na funcao anterior
RETURN NIL

***************************************
Procedure BF_Opcao(nOp_)
If nOp_==1
mop:=1
* CTECOLET()
endif
If nOp_==2
mop:=1
* CTECTRCS()
endif
If nOp_==3
mop:=1
* CTEMDFEL()
endif
Return
***************************************
FUNCTION MENUX(cMacroEx,cTitJan) //funcao para executar opcoes do menu e barra de ferramentas
Local nGt, oCrt
lin1:=4
If lMenuExe
Return Nil
Endif
lMenuExe:=.T.
SetCursor(1)
oCrt := wvgCrt():New( , , { 3.5, 0 },{ 50, 110 }, , .t. )
oCrt:lModal := .t.
oCrt:Resizable := .t.
oCrt:Title := cTitJan
oCrt:icon := "icon_sys.ico"
oCrt:Create()
CLS
&cMacroEx.
oCrt:Destroy()
lMenuExe:=.F.
SetCursor(0)
CLOSE DATA
RETURN NIL



obrigado a todos e bom trabalho!
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Sistema fechando ao pressionar a tecla c

Mensagem por asimoes »

Acho que tem conflito ai

Tá usando a hwgui.ch aonde ? tem uma rotina separada (prg) usando a hwgui ?
►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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Sistema fechando ao pressionar a tecla c

Mensagem por JoséQuintas »

Pelo jeito usa GTWVG, que usa janela Windows.
Para esse caso, melhor trocar a errosys original para uma errorsys que permita ver o erro.
É provável que a rotina aonde tecla C esteja causando erro, e não está vendo a mensagem de erro.
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
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Sistema fechando ao pressionar a tecla c

Mensagem por janio »

Veja se com um SETCANCEL(.F.) no seu prg principal resolve
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Sistema fechando ao pressionar a tecla c

Mensagem por JoséQuintas »

Não é.
Provavelmente é erro no fonte 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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Sistema fechando ao pressionar a tecla c

Mensagem por JoséQuintas »

fenixsorocaba escreveu:no sistema em clipper funciona perfeitamente. no sistema convertido, ao se teclar c em qualquer tela, mesmo na tela inicial o sistema fecha sem aviso, como se fosse uma tecla de atalho para fechar
fenixsorocaba escreveu:isto é uma caracteristica do harbour, ou é uma caracteristica de alguma lib que eu esteja usando, como o menu grafico ou barra de ferramentas?
Sendo direto:
Provavelmente primeiro compilou com Harbour sem modificação.
Se aqui funcionou então o problema tá no resto.
Se já foi direto pra Harbour já usando diferente... aí fez uma grande merd., e por isso está perguntando se o problema é o Harbour.

Não precisa perguntar, é só fazer um programa em separado sem isso e testar.
Depois coloca isso e testa, vai ter sua resposta
fenixsorocaba escreveu:como alteração no inicio do sistema novo (prg main) :
#include "inkey.ch"
#include "hbgtinfo.ch"
#include "wvtwin.ch"
#include "hbgtwvg.ch"
#include "hbdyn.ch"
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
REQUEST HB_GT_WVT
REQUEST HB_GT_WGU
REQUEST HB_GT_WVG
e no prg especifico para as funcoes:
#include "hwgui.ch"
#include "harupdf.ch"
#include "inkey.ch
"#include "hbdyn.ch"
A velha história de sempre, sair copiando sem nem entender porque.
Se tem #include "hwgui.ch" e não dá erro, então nem está usando o Harbour oficial, e nem dá pra saber o que mais de mistura tem na compilação.
O resto... nem sei pra que tanta coisa... só se fosse o Harbour 3.0...
fenixsorocaba escreveu:talvez seja até um bug interno de umas dessa funções (barra de ferramentas que está sempre ativa em todas as telas por exemplo), dificultando ainda mais descobrir a causa..
Só retirar o uso e já vai saber. (será que foi mesmo pra Harbour já usando tudo isso?)
Poderia ser problema com multithread, mas isto não causaria erro somente na tecla C.
Já viu se os fontes que copiou não tem um SET KEY pra letra C?
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