HASA escreveu::-O
Creio que funcione nas 2
prezado... aceitar o código a HMG aceitou...
agora funcionar? :%
vou postar a tela antes de clicar na barra de rolagem... ↓
- pdv-erro1.png (10.85 KiB) Visualizado 4030 vezes
Agora a próxima imagem é de quando se clica na barra de rolagem. por favor vejam ↓
- pdv-erro2.png (8.09 KiB) Visualizado 4030 vezes
Além de acontecer de sumir os produtos já listados ali, o TEXTBOX de digitação do código do produto e o TEXTBOX da quantidade ficam estranhos e as teclas (ENTER e TAB) parecem que não mais são aceitas...
O que na verdade, acho que está acontecendo na minha "leiguisse" é que como estou ainda com a minha mente acostumada com o modo CONSOLE que a gente programava e sabia que o sistema ia descendo linha a linha, e, não precisava nem de DEBUG pra descobrir erros... pois sabíamos onde realmente estávamos...
Agora em POO ou GUI, o conceito é diferente e, eu mesmo, sinceramente, não consigo entender onde o sistema fica esperando um comando...
No modo CONSOLE a gente sabe que o sistema só pára em 2 lugras ou mais alguns:
- READ
- do while .t.
- etc
Em Orientação a Objeto, fico na sensação que não para em lugar nenhum ou que tudo se executa ao mesmo tempo...
Então - como disse na minha "leiguisse", concluo que as minhas funções antigas de CONSOLE devem ser repensadas pra funcionar corretamente em GUI... Mas, se conseguirei refazê-las ou não, é se alguém conseguir me explicar de uma forma simples, prática e bem didática com exemplos do dia a dia...
ah!
por exemplo, vejam parte do código CONSOLE (que adaptei para GUI) abaixo:
do while .not. (FIM)
INICIALIZA_CAMPOS ()
TELA_ENTRADA_GUI (procname (),'Vendas GUI',COR_PADRAO)
if .not. FIM
PEDE_OPCAO ()
endif
enddo
close all
set (_SET_CURSOR,SALVA_CURSOR)
set (_SET_DELIMITERS,SALVA_DELIMITERS)
set (_SET_INTENSITY,SALVA_INTENSITY)
setcolor (SALVA_COR)
restscreen (0,0,maxrow (),maxcol (),SALVA_TELA)
return
Bom, vou tentar em poucas palavras explicar como é isso aqui em CONSOLE pra ver se alguém consegue me explicar como devo mudar isso para GUI/POO, aliás a rotina acima no original e que funciona perfeitamente é:
do while .not. (FIM)
INICIALIZA_CAMPOS ()
TELA_ENTRADA ()
TRATA_CAMPOS ()
if .not. FIM
PEDE_OPCAO ()
endif
enddo
close all
set (_SET_CURSOR,SALVA_CURSOR)
set (_SET_DELIMITERS,SALVA_DELIMITERS)
set (_SET_INTENSITY,SALVA_INTENSITY)
setcolor (SALVA_COR)
restscreen (0,0,maxrow (),maxcol (),SALVA_TELA)
return
- todas as telas do meu sistema (CONSOLE) basicamente possuem essa mesma sequência de linhas dentro do LOOP;
- o loop verifica se a variável lógica FIM está em .f. (que é o padrão desde o início deste PRG);
- a função I
NICIALIZA_CAMPOS() faz uma atribuição de todos os campos da tabela (.dbf) para as variáveis de memória;
-
TELA_ENTRADA() cria a tela com todas as variáveis de memória e os SAYs necessários;
-
TRATA_CAMPOS() cria e coloca em funcionamento todos os GETs e o READ necessários;
-
if .NOT. (FIM) (variável que contém o tempo todo .f.) sempre aciona a função
PEDE_OPCAO()- agora se em algum momento for GRAVADO, EXCLUÍDO ou pressionado ESC/ENTER no teclado a variável FIM que está em
.f. recebe
.t. e o sistema chega ao fim...
simples assim...
Agora voltando ao POO/GUI
Então, observem que mudei apenas 2 linhas, ou seja, eliminei a linha
TRATA_CAMPOS() que era a que criava os
GETs e os coloquei dentro da função TELA_ENTRADA que agora chama-se
TELA_ENTRADA_GUI((procname (),'Vendas GUI',COR_PADRAO) onde estão os substitutos dos SAYs (
LABELs) e dos GETs que são os
TEXTBOXs.
Então, meus caros colegas, o que não sei lidar é com o que fazer com - por exemplo:
DO WHILE .NOT. (FIM)
Pois no modo CONSOLE eu sei que se eu não fizer isso, o sistema encerra-se de forma incorreta.
Então, eu uso - não sei os senhores, em modo CONSOLE esse "loop" pra segurar o programa, até a hora certa dele ser encerrado.
Agora, em GUI/POO, como faria isso?
Portanto, o que gostaria de entender é como realmente o modo GUI/POO realmente funciona, pois assim, eliminaria mais um montão de funções inúteis ou desnecessárias em ambiente GUI/POO/WINDOWS nativo.
e tome :% estou pedindo socooooorroooooo!!! alguém aí pra atender um velho e bom telefone? :f
rsrsrs... só pra descontrair...
assim como o telefone fixo está em extinção, se nós - os que ainda não migraram pra gráfico, não fizermos alguma coisa urgente, deixaremos de existir!!! *-)