SET( _SET_EVENTMASK, INKEY_ALL )
Funciona ok em tudo menos quando uso um tbrowse. Ao menor deslocamento do mouse ele vai para o ultimo registro, e quando tem filtro de dados no tbrowse ele mistura tudo....
Segue o código de um dos tbrowse que uso e que possui um filtro de dados:
Código: Selecionar todos
***************************************
FUNCTION loc_on()
***************************************
* cChave é o grupo do item
cor(1)
WHILE .T.
mEugRupa := crd->codigo
* criar tbrowse
oPropri := tbrowsedb (05,28,17,70)
* filtro tbrowse com a func skipwhil()
oProPri:SKIPBLOCK := {|x| SKIPWHIL(x, {||item->cod_grup == cChave})}
oPropri:GOTOPBLOCK := {| | SKIPWHIL((LASTREC()* -1),{||item->cod_grup == cChave})}
oproPri:GOBOTTOMBLOCK := {| | SKIPWHIL((LASTREC()* 1), {||item->cod_grup == cChave})}
oCol1 := tbcolumnnew(" PRODUTOS CADASTRADOS", {||" ³ " + item->produto + " ³ "})
oProPri:addcolumn(oCol1)
WHILE .T.
WHILE(!oPropri:stabilize())
END
IF iNsert_dAta
sset(2)
IF _MODE == 'pItem1'
IF EMPTY(pItem1)
forca_lc()
ELSE
SEEK gPitem + RTRIM(pItem1)
END
ELSEIF _MODE == 'pItem2'
IF EMPTY(pItem2)
forca_lc()
ELSE
SEEK gPitem + RTRIM(pItem2)
END
ELSEIF _MODE == 'pItem3'
IF EMPTY(pItem3)
forca_lc()
ELSE
SEEK gPitem + RTRIM(pItem3)
END
ELSEIF _MODE == 'pItem4'
IF EMPTY(pItem4)
forca_lc()
ELSE
SEEK gPitem + RTRIM(pItem4)
END
END
IF EOF()
forca_lc()
oPropri:refreshall()
KEYBOARD(CHR(47)); KEYBOARD(CHR(47))
END
oPropri:refreshall()
KEYBOARD(CHR(47)); KEYBOARD(CHR(47))
END
nTecla := INKEY(0)
DO CASE
CASE ( nTecla == K_ESC )
EXIT
CASE ( nTecla == K_ENTER )
EXIT
CASE ( nTecla == K_DOWN )
oPropri:down ()
CASE ( nTecla == K_UP )
oPropri:up ()
CASE ( nTecla == K_LEFT )
oPropri:left ()
CASE ( nTecla == K_RIGHT )
oPropri:right ()
CASE ( nTecla == K_PGUP )
oPropri:pageup ()
CASE ( nTecla == K_PGDN )
oPropri:pagedown ()
CASE ( nTecla == K_CTRL_PGUP )
oPropri:gotop ()
CASE ( nTecla == K_CTRL_PGDN )
oPropri:gobottom ()
OTHERWISE
*** ENC100B2.PRG
IF nAprima
nAprima := .F.
ELSE
ver_teclado()
END
ENDCASE
oPropri:refreshall()
END
EXIT
END
RETURN
***************************************
FUNCTION SKIPWHIL (x,key_val)
***************************************
LOCAL i := 0
IF LASTKEY() == 0
RETURN i
END
IF (x > 0 .AND. RECNO() <> LASTREC()+1)
WHILE (i < x)
SKIP 1
IF EOF() .OR. !(EVAL(key_val))
SKIP -1
EXIT
END
i++
END
ELSEIF (x < 0)
WHILE (i > x)
SKIP -1
IF BOF()
EXIT
END
IF !(EVAL(key_val))
SKIP 1
EXIT
END
i--
END
END
RETURN i
Qual é a sintaxe do comando para desativar o mouse ? em ultimo caso desativo o mouse na entrada do tbrowsw e ativo na saida.
Abraços


