Quase desesperadamente - foco no get.

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

Moderador: Moderadores

MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Quase desesperadamente - foco no get.

Mensagem por MARCELOG »

Olá companheiros, é aquela "velha" dúvida.
Como fazer para alterar o foco de um get para outro?
Não tem jeito?
.
Exemplificando:
Foram emitidos 10 (dez) gets e estou no get de nº 7.
Com fazer para, do get nº 7, ir para o get nº 3.
Obrigado.

MarceloG
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Olá,

A Função baixo exeplifica como ir para deterninado GET, se por exemplo quer ir para terceiro use VaiProGet( 3 )...

Código: Selecionar todos

Function VaiProGet( nGet )

   local GetList := {}
   oGet := GetList[ nGet ]
   oGet:SetFocus()

   Return (NIL)
Repare que após os GETs não pode ter nenhum READ, pois este mata a GetList.

Bom, não é grande coisa, mas com certeza o caminho é esse, é só elaborar um pouco mais.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

Caro Stanis,
obrigado pela atenção.
Entretanto, talvez você não tenha entendido o meu problema.
Se você quer iniciar a edição em determinado get, basta usar a função readmodal().
Ao invés de usar read, use readmodal(getlist,?), onde o ? é o get a ter o foco inicialmente.
Essa situação não "apaga" a getlist atual, que pode ser relida.
Se o getlist for local, quando você sair da função, o getlist é automaticamente detonado.
O que estou precisando é editar o getlist atual mas num get específico.
O Clipper 5.2 traz no source um prg (modget.prg) que chama a função gotoget() que, certinho, altera o foco nos gets .
Todavia, não entendi o mecanismo que a faz funcionar, pois ela não funciona com o reader padrão, mas um getsys alterado.
Nesse getsys, ela (a função gotoget()), não é chamada em lugar algum, e usa o número do get pretendido como parâmetro para saída (exitstate).
Conseguiu enteder?

MarceloG
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Hehe,

Pois é, na verdade eu tinha entendido sim o que você quer fazer, o exemplo foi simples, mas acredito que é mais ou menos por aí sim, se você conseguir dar o foco dessa maneira passando a getlist como parametro ou sei lá, algum jeito que você não mate ela, da pra usar em tempo real no get. Eu tinha pensado se não seria possível editar o STD.CH e colocar uma clausula a mais no GET que permita a execução de uma função, que não seja pré nem pós validação como as já existentes WHEN e VALID.

Bom, eu nunca precisei fazer isso na verdade, mas algum jeito tem que ter né, vou continuar pensando aqui e você por aí se conseguir alguma coisa posta aí, é sempre bom saber né.

Falooou.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Responder