Tirando vantagem do console igual GUI
Enviado: 25 Jul 2025 19:32
Comecei a mexer em fonte de terceiros, e acabei usando algumas coisas não comuns.
Minha GETSYS tem uma alteração simples: atualizar GETs, mesmo com WHEN .F.
Acabei também usando algo fora do comum, fazer o que....
O fora do comum é esse codeblock no valid.
O recurso da minha GETSYS não dá pra ver só olhando esse bloco.
é necessário ver o outro GET.
Estou apenas tentando facilitar o trabalho.
Eram 3 telas de get, e agora só uma.
Qual o maior problema em tela cheia de coisas ?
Por exemplo, mostrar o nome do vendedor, que por sinal é várias linhas depois do GET.
Como GUI Faz ?
Ela tem lá o LABEL, é só atualizar o LABEL.
Pois é.... tenho GET que não faz GET.
Se não faz GET..... é um SAY.
Pra atualizar o nome dos vendedores, eu atualizo a variável cTxtVendedor1 e cTxtVendedor2
Por enquanto me limitando a deixar SAY perto de GET.
Depois posso mudar tudo pra Row() + 1, Col() + 2, sem nenhum problema de linha desconhecida.
Ah sim, uso a mesma tela pra SAY e GET.
Pra SAY é só fazer CLEAR GETS no final.
É uma coisa meio comum em GUI, de ter tela fixa e só atualizar conteúdo.
Mas estou fazendo a mesma coisa usando console.
Por default o harbour não atualiza GET com WHEN.
Essa alteração simples da getsys faz toda diferença.
É até interessante.... mas em GUI seria quase o mesmo fonte !!!
Ao invés de cTxtVendedor1 := texto, seria LabelVendedor1:Value := texto
E assim vou indo....
Fonte não GUI, mas não tão fora do estilo GUI....
Talvez interessante pra ajudar quem só trabalha com console a entender mudanças GUI.
Que só precisa criar a tela uma vez.
E a tela vazia ?
Ué....
Pega os mesmos campos, que virão vazios, e usa o mesmo SAY.
Minha GETSYS tem uma alteração simples: atualizar GETs, mesmo com WHEN .F.
Acabei também usando algo fora do comum, fazer o que....
Código: Selecionar todos
@ 06, 71 GET vc[22] PICTURE "@K9999" ;
WHEN cOpcao == "I" .OR. lPodeAlterar ;
VALID { ||
LOCAL lOk
vc[22] := StrZero( Val( vc[22] ), 3 )
lOk := pesquisa( "ven",vc[22],"codven","nome" )
vc[22] := ven->CodVen // retorno da pesquisa
//@ 13, 17 SAY Left( ven->Nome, 20 )
cTxtVendedor1 := Left( ven->Nome, 20 ) // atualiza tela
RETURN lOk
}
O recurso da minha GETSYS não dá pra ver só olhando esse bloco.
é necessário ver o outro GET.
Estou apenas tentando facilitar o trabalho.
Eram 3 telas de get, e agora só uma.
Qual o maior problema em tela cheia de coisas ?
Por exemplo, mostrar o nome do vendedor, que por sinal é várias linhas depois do GET.
Como GUI Faz ?
Ela tem lá o LABEL, é só atualizar o LABEL.
Código: Selecionar todos
@ 13, 02 SAY 'Vendedor 1/2.: / '
@ 13, 17 GET cTxtVendedor1 WHEN .F.
@ 13, 38 GET cTxtVendedor2 WHEN .F.
Se não faz GET..... é um SAY.
Pra atualizar o nome dos vendedores, eu atualizo a variável cTxtVendedor1 e cTxtVendedor2
Por enquanto me limitando a deixar SAY perto de GET.
Código: Selecionar todos
@ 10, 02 SAY 'Entr: Bai: '
@ 10,08 GET vc[16] PICTURE "@!"
@ 10,54 GET vc[17] PICTURE "@!"
@ 11, 02 SAY 'Cid.: UF..: CEP.: Fax: '
@ 11,08 GET vc[18] PICTURE "@!"
@ 11,40 GET vc[19] PICTURE "@!"
@ 11,49 GET vc[20] PICTURE "@r 99999-999"
@ 11,64 GET vc[15]
Ah sim, uso a mesma tela pra SAY e GET.
Pra SAY é só fazer CLEAR GETS no final.
É uma coisa meio comum em GUI, de ter tela fixa e só atualizar conteúdo.
Mas estou fazendo a mesma coisa usando console.
Por default o harbour não atualiza GET com WHEN.
Essa alteração simples da getsys faz toda diferença.
É até interessante.... mas em GUI seria quase o mesmo fonte !!!
Ao invés de cTxtVendedor1 := texto, seria LabelVendedor1:Value := texto
E assim vou indo....
Fonte não GUI, mas não tão fora do estilo GUI....
Talvez interessante pra ajudar quem só trabalha com console a entender mudanças GUI.
Que só precisa criar a tela uma vez.
E a tela vazia ?
Ué....
Código: Selecionar todos
GOTO BOTTOM
SKIP