assim meu sistema já era quando usava VLIB 2.0 (usava fonte avant.com).JoséQuintas escreveu:Essa briga toda com GTWVW é pra fazer algo parecido com isso, não é?
O que não consigo entender é a "linguagem" (você fala/escreve e eu ouço/interpreto) não está batendo...
deixa eu explicar...
se tudo meu já está pronto (modo console) por que devo mexer e perder ainda mais tempo para organizar o que já está organizado?
Talvez na sua forma de programar (o meu) esteja desorganizado.
Mas, não é bem assim... todos os meus fontes, seguem o mesmo padrão... por exemplo.
1 - módulo Orçamento:
segue a seguinte sequência (vou colocar somente os mais importantes):
func orçamento()
#include "gci10000.ch" // meu inkey personalizado
local // variáveis locais deste módulo
#define // variáveis do módulo q no lugar de declará-las como LOCAL, PRIVATE, PUBLIC, preferi assim
private // todas as variáveis private estão aqui
#inlcude (arquivos/matrizes contendo os arquivos que serão abertos) // no caso são outros .PRGs específicos
private // local das variáveis private que são as com mesmo nomes de campos de arquivo dbfntx
set // todos os setcursors, setdate etc, ficam aqui.
TELA_PADRAO() // aqui chamo a função que desenha toda a tela padrão de todos os módulos (pertence ao .PRG rotinas)
setcolor (cor padrão) // aqui defino a cor que será igual em todas as telas (o usuário pode alterar num local específico do sistema que altera automaticamente em todos os módulos)
ABERTURA() // função que abre todos os arquivos que serão usados neste módulo
select() // seleciona o arquivo principal
INICIALIZA_CAMPOS() // função comum a todos os módulos que inicializa as variáveis em relação ao arquivo select() principal;
ATUALIZA_CONT_ANT() // esta função permite o uso do F3 para que o usuário repita a última informação digitada anteriormente. Ela é útil por exemplo num cadastro de clientes, onde acabei de cadastrar um cliente que mora na rua tal, e o próximo mora na mesma rua/bairro/cidade, então pressiona F3 em cima do @get que repete a digitação anterior (individual para cada get/campo);
do while .not. (FIM)
INICIALIZA_CAMPOS() // novamente
TELA_ENTRADA() // aqui desenha a tela deste módulo (pois cada um é diferente, mas, a função é única a todos os módulos)
TRATA_CAMPOS() // aqui trata os @GETs deste módulo, é igual em todos os módulos , pois é comum a todos
if .not. FIM
PEDE_OPCAO () // esta função é comum a todos os módulos, pois oferece ao usuário 2 ou 3 opções (GRAVAR/DESISTIR ou GRAVAR/DESISTIR/EXCLUIR)
endif
enddo
Então, prezado professor, o meu sistema já está todo ou quase, otimizado. Excluo aqui, essas alterações "meio-bocas" que fiz na tentativa de colocar gráfico... isso precisa ser refeito ou melhorado, mas, acho que não chega a 10% do total das linhas.
Inclusive, o problema da impressão em LPTx, não existe solução, aí eu inventei uma (provisória) onde criei uma variável pública que nas configurações do sistema o usuário responde a uma pergunta:
@ 10,10 say "DESEJA usar impressora matricial (LPTx/PRN - ex.: EPSON LX 300?" get mLPT valid "SN"
Mas, quero melhorar isso, para ser uma coisa mais otimizada, pois já pensei assim:
Na maioria dos relatórios, ofereço ao usuário as seguintes opções (antes de migrar já era assim):
...
"Confirma relatório - CONFIRMA"
Escolha uma opção
IMPRESSORA - VIDEO - ARQUIVO
Quero alterar isso para ser assim:
...
"Confirma relatório - CONFIRMA"
Escolha uma opção
IMPRESSORA LPTx - IMPRESSORA WINDOWS - VIDEO - ARQUIVO
Bom, então, expus isso tudo para fazer as seguintes perguntas que não querem calar:
1 - se o meu aplicativo já está otimizado, pra que perder mais tempo? pois tempo é dinheiro, e não disponho de dinheiro para ficar aqui sem vender meu aplicativo, ou tentar fazê-lo
2 - se é pra converter em modo GUI complicado, foi daí que parei de usar a HMG e ainda não quis testar a HWGUI e testei e gostei da GTWVG e percebi que a GTWVW é melhor ainda. Pra que ficar mexendo no código?
3 - O meu caso, já falei um montão de vezes, e repito: preciso é:
a) colocar gráficos (já coloquei alguma coisa pra "maquiar")
b) mouse funcionando no menu (tá meio boca, mas, foi o Sr. quem me ajudou e já tá funcionando)
c) impressão em usb (tá meio boca, mas também já está funcionando)
d) pdf (já tá meio boca, e foi o Sr. quem me ajudou a descobrir que o meu harbour estava com problema)
e) visual melhor (como mostrei acima)... isso infelizmente não tá legal (ao meu ver) ainda, pois preciso em pelo menos 3 módulos (vendas, baixar, extrato e clientes) isso ser 100% gráfico, e, aí a GTWVG está me ajudando, e, pensei a GTWVW é mais prático ainda; só que estou perdendo meu tempo testando e não ter um manual (apesar de ter .DOC em português - acho q é a única) e um grupo específico no yahoo (grupo fechado, q acho q faliu desde 2014);
f) colocar meu sistema compatível com o mercado FISCAL (PAF/ECF) que é uma coisa que não entendo nada... mas, isso acho que é a última coisa a ser feita.
Então é isso aí que tenho defendido de unhas e dentes, mas, isso tem desagradado alguns, e pelo que percebo, restaram poucos além de ti que estão empenhados a me ajudar.
Acho que tem outras coisas a serem melhoradas, mas, repito, se for pra continuar "agarrado" aqui no laboratório e não ter tempo pra tentar vender, de nada adiante... é melhor voltar pro Delphi...
Esse negócio da gente ficar com dó de perder um trabalho de muitos anos, parece que não é uma boa escolha...
acho que nestes 14 meses que consegui migrar e ainda estou aqui garrado, se tivesse "pegado pra capar" no delphi, já deveria ter saído uns 2 sistemas (comercial e ordem de serviço - q está parado).
Bom, não me leve à mal e não fique com raiva, pois preciso de sua ajuda, e, sempre vou levar esse legado comigo, pois és um dos poucos que entende a minha situação... pois até lembro que já me contou parte de sua dificuldade pessoal e familiar, que me fez levantar ainda mais a cabeça e tocar a bola pra frente!
#TamuJuntoEmisturadoMasNaoEmbolado!!!