Clipper On Line • Ver Tópico - Sistema fechando ao pressionar a tecla c

Sistema fechando ao pressionar a tecla c

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

Moderador: Moderadores

 

Sistema fechando ao pressionar a tecla c

Mensagempor fenixsorocaba » 03 Jul 2019 12:16

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!
fenixsorocaba
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 5
Data de registro: 03 Jul 2019 11:40
Cidade/Estado: SOROCABA/SP
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Sistema fechando ao pressionar a tecla c

Mensagempor MSDN » 03 Jul 2019 14:01

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
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 741
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 178 vezes
Mens.Curtidas: 123 vezes

Sistema fechando ao pressionar a tecla c

Mensagempor fenixsorocaba » 03 Jul 2019 14:46

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
fenixsorocaba
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 5
Data de registro: 03 Jul 2019 11:40
Cidade/Estado: SOROCABA/SP
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Sistema fechando ao pressionar a tecla c

Mensagempor asimoes » 03 Jul 2019 15:17

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

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Sistema fechando ao pressionar a tecla c

Mensagempor fenixsorocaba » 03 Jul 2019 16:14

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!
fenixsorocaba
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 5
Data de registro: 03 Jul 2019 11:40
Cidade/Estado: SOROCABA/SP
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Sistema fechando ao pressionar a tecla c

Mensagempor asimoes » 03 Jul 2019 19:42

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

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Sistema fechando ao pressionar a tecla c

Mensagempor JoséQuintas » 04 Jul 2019 08:13

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

Sistema fechando ao pressionar a tecla c

Mensagempor janio » 04 Jul 2019 08:50

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

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Sistema fechando ao pressionar a tecla c

Mensagempor JoséQuintas » 04 Jul 2019 09:04

Não é.
Provavelmente é erro no fonte 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: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Sistema fechando ao pressionar a tecla c

Mensagempor JoséQuintas » 04 Jul 2019 09:30

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




Retornar para Harbour

Quem está online

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