Página 1 de 1

Quase desesperadamente - foco no get.

Enviado: 14 Ago 2006 12:39
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

Enviado: 14 Ago 2006 20:05
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.

Enviado: 15 Ago 2006 10:15
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

Enviado: 15 Ago 2006 11:48
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.