JoséQuintas escreveu:
PROCEDURE Main
LOCAL codigo := 1, descricao := SPace(25), complemento := Space(25)
LOCAL CST := 0, ncm := 0, cfop := 0, GetList := {}, nCont
SETMODE(33,80)
CLS
FOR nCont = 0 TO 33
@ nCont, 0 SAY Replicate("W", 80)
NEXT
SAVE SCREEN
SetColor( "W/B,B/W,,,W/B")
@ 8, 10 CLEAR TO 17, 50
@ 8, 10 TO 17, 50 COLOR "G+/B"
@ 9, 11 SAY Padc( "UMA JANELA", 39) COLOR "W/B"
@ 10, 11 TO 10, 49 COLOR "G+/B"
@ 11,11 SAY "Codigo:" GET codigo PICTURE "99999" VALID OkCodigo( @Codigo )
@ 12,11 SAY "Descricao:" GET descricao PICTURE "@!"
@ 13,11 SAY "Compl:" GET complemento PICTURE "@!"
@ 14,11 SAY "CST:" GET cst PICTURE "9999999999" VALID OkCst( @Cst )
@ 15,11 SAY "NCM:" GET ncm PICTURE "99999999"
@ 16,11 SAY "CFOP:" GET cfop PICTURE "9999"
READ
RESTORE SCREEN
RETURN
eu não quis postar todos os códigos completos pra não lhes cansar... mas o meu sistema é completo para a época do auge do clipper.
Esses detalhes todos do MAIN são grandes demais pra eu postar aqui e encher/poluir os olhos de quem quer que vá precisar dessas dicas/dúvidas que aqui postamos.
depois do módulo MAIN, onde são tratadas todas as variáveis LOCALs, PRIVATEs e PUBLICs são chamados os devidos módulos.
No meu caso, tenho 3 funcionando 100% em console HARBOUR, e, 2 em tentativas 100% HMG e este último em questão HÍBRIDO 50% GTWVG + 50% HMG, ou, no último caso, 100% em GTWVG.
vejam a telas do menu anterior e funcionando inclusive com MOUSE e botões gráficos numa tela 100% CONSOLE pela ajuda do próprio QUINTAS há alguns anos atrás - como o tempo é contra a gente:
Agora vejam a tela dos 3 orçamentos destacados funcionando em 100% CONSOLE, mas, com mensagens 100% gráficas da HMG ou GTWVG, não me lembro mais:
Bom, esta última tela, é que, estamos tentando transformar para 100% GUI.
Então, em 100% HMG, percebo que pra funcionar é necessário que apareçam 2 telas o tempo todo no sistema (pelo menos até agora, pra funcionar foi assim):
1 - modo console;
2 - modo GUI, com um form com tamanhos mínimos e invisível como FORM MAIN, pois quando for chamado um FORM 100% hmg, sejam CHILD ou MODAL, pois quando ele é fechado o FORM MAIN ainda continuará ativo.
JoséQuintas escreveu:PROCEDURE HB_GTSYS
30
31 REQUEST HB_GT_WVG_DEFAULT
32
33 RETURN
isso já tem no sistema. Só não mostrei pra não ficar repetindo coisas que já estão respondidas noutros tópicos, por vc mesmo QUINTAS.
JoséQuintas escreveu:oGT := hb_gtSelect()
agora essa linha eu ainda não sei, mas, talvez na minha cabeça, faça algum sentido. Não sei o conceito e sintax, mas, se for o que estou imaginando: "que ela retorna o controle à GT anterior - que é como se fosse o DEFINE WINDOW da HMG, fará mais sentido.
JoséQuintas escreveu:Tá aí o wvgCrt.
Variável por referência, igual faria com console, igual pode fazer com HMG, igual pode fazer com HWGUI.
Esse é um conhecimento básico do Clipper, obrigatório nos dias atuais.
Continua deixando isso de lado, e tá fazendo falta.
Quintas, as suas 2 telas oferecidas são semelhantes às que já uso. Observe que a TELA PDV postada por mim lá no início (que inclusive os códigos em HMG foram oferecidos 0800 pelo amigo MSDN), são 100% em GTWVG, e, para obtermos fontes de tamanhos definidos só é possível com o uso dos recursos gráficos da GTWVG usando o DRAWLABEL, etc...rsrsrs faltou ter um DRAWGET pra gente definir o tamanho dos fontes.
Então, essa tela, como é CONSOLE (não é WVGCRT), pelo que percebi, tudo que fizer de @SAY/GET diferente em RUNTIME, já atropela o que foi feito.
Então, veja a tela se eu chamar o BROWSEDB em cima dela... olha a emboleira, pois no lugar de usar o gráfico CRIABROWSE_WVG (poderia ser o modelo do MSDN adaptado para CRIABROWSE_HMG):
Código: Selecionar todos
CRIABROWSE_WVG (VARIAVEL,'PCI10048',NOME_ARQUIVO,CABEC_CAMPOS,TAM_MEMO,MASCARAS)
comentei-o e voltei ao CRIABROWSE 100% console
Código: Selecionar todos
CRIABROWSE (VARIAVEL,'PCI10048',NOME_ARQUIVO,CABEC_CAMPOS,TAM_MEMO,MASCARAS)
...
e vejam na "emboleira" que causou, mas, que a variável VALOR retonar para o GET mCDPRODUTO ou qualquer que seja o GET o valor que realmente precisamos e já com o ENTER pra passar para o próximo campo GET:
Então, pra que a tela não fique toda "embolada" como apresentado acima, é que criamos o CRIABROWSE_WVG ou CRIABROWSE_HMG (adaptaão do código MSDN que é para HMG-E).
Talvez, eu não esteja conseguindo passar a informação para o fórum, mas, é isso, pois os códigos são outros.
Por @REFERÊNCIA também não retornou a variável VALOR para o GET mCDCODIGO (o básico de clipper que tem em muitos módulos e bastante linhas do meu sistema em 100% clipper/harbour).
Agora, esta função HB_GTSELECT(), vou ver se encontro alguma sintaxe, tutor, documentação no "google".
Ela pode ser a ligação entre a tela inicial do módulo com o WVGCRT e vice-versa sem que percam-se as informações!
boa tarde a todos!
"E, Ele nos vivificou estando nós mortos nos nossos delitos e pecados" - Efésios 2 - Bíblia Sagrada.