Obrigado Quintas e Rossine pela atenção.
Eu acabei resolvendo de outra forma. Parei um pouco, fui ver uns livros velhos que tenho aqui e vi que o
Get tem uma variável interna chamada "cargo", que serve para a gente colocar qualquer coisa lá.
Como o campo de pesquisa está dentro de um Get eu mando os parâmetros para a função através do cargo do get.
Fiz um pequeno exemplo
Código: Selecionar todos
REQUEST HB_CODEPAGE_PTISO
#include "inkey.ch"
PROCEDURE MAIN
LOCAL GetList := {}
LOCAL cNome := SPACE(40)
LOCAL cCodigo := SPACE(3)
LOCAL cObs := SPACE(40)
hb_CdpSelect( "PTISO" )
CLS
#ifdef __PLATFORM__WINDOWS
? "Setmode : " , SetMode(50,150)
#endif
@ 05,03 SAY "Nome : " GET cNome
@ 07,03 SAY "Código : " GET cCodigo MESSAGE "Pressione F3 para busca"
@ 09,03 SAY "Observação : " GET cObs
GetList[1]:cargo := "campo nome" // <<<--------
SET KEY K_F3 TO JanelaBusca()
READ MSG AT 20,00,79 MSG COLOR "W+/BG"
SET KEY K_F3 TO
RETURN
FUNCTION JanelaBusca()
//IF READVAR() == "CCODIGO"
alert( hb_valtoexp( GetActive():cargo() ) )
ALERT("ATIVANDO BUSCA")
//ENDIF
RETURN .t.
Funciona assim :
(1) Quando o usuário tecla F3 a função JanelaBusca é chamada
(2) Lá eu vejo se o READVAR está ativo e pego o cargo assim : GetActive():cargo()
(3) Para preencher o cargo basta adicionar o valor no Getlist : GetList[1]:cargo := "campo nome"
É só um exemplo, no meu aplicativo o cargo tem um Json, daí consigo mandar muita coisa.
Quando voltei vi a resposta de vcs.
As duas soluções são parecidas e vou guardar aqui para usar quando precisar passar parâmetros através de set key e não estiver em um get.
Obrigado pelo tempo de vcs.