Olá Pessoal,
Alexandre, fiz os testes ontem mas foi em meu TBrowse(), claro, ao pressionar algo remonto a tela e portanto move o pointer.
E como prometi, aqui está a prova:
Você tem Razão!!! rs...
Reli as notas no manual tanto em SET DELETED como em DbDelete(), e é uma advertência exatamente como você entendeu: Alerta que mesmo usando SET DELETED ON, que é para não visualizar registros deletados, o pointer não se moverá automaticamente, mas que o registro deixará de ser visÃvel apenas quando mover o pointer, independente se o arquivo está ou não indexado.
Abaixo um exemplo que prova que você está certo, e eu claro, confundi tudo (também coloquei uma opção para simular no Browse()):
#include "inkey.ch"
REQUEST DBFCDX
REQUEST HB_CODEPAGE_PT850
Function Main()
Local x, aEstr, cDbf := "DBFTESTE.DBF"
Hb_CdpSelect( "PT850" )
RDDSetDefault( "DBFCDX" )
If !File( cDbf )
aEstr := {;
{"codigo" , "C", 5, 0},;
{"descricao", "C", 30, 0};
}
DBCreate( cDbf, aEstr )
DbUseArea( .T., "DBFCDX", "DBFTESTE.DBF", "DBFTESTE", .F. ) // abre em modo EXCLUSIVO
For x := 1 To 20
Append Blank
Replace codigo With StrZero( RecN(), 5 )
Replace descricao With "DESCRIÇÃO DO CAMPO => " + codigo
Next
DbCreateIndex( "DBFTESTE", codigo )
DbSetIndex( "DBFTESTE" )
Else
DbUseArea( .T., "DBFCDX", "DBFTESTE.DBF", "DBFTESTE", .F. )
DbSetIndex( "DBFTESTE" )
Endi
Clear Screen
//SET DELETED OFF
SET DELETED ON
While LastKey() != K_ESC .And. !EOF()
@ 2,2 Say "Pressione DEL para deletar um registro"
@ 3,2 Say "Presione Seta Acima ou Seta Abaixo para Navegar"
@ 5,2 Say "Result de RecN() => " + Hb_NToS( RecN() ) + " "
@ 6,2 Say "Registro Corrente => " + codigo + "-" + descricao
Inkey(0)
If LastKey() = K_UP
Skip -1
ElseIf LastKey() = K_DOWN
Skip
ElseIf LastKey() = K_DEL .And. !Deleted()
DbDelete()
ElseIf LastKey() = K_DEL
DbRecall()
EndIf
If Deleted()
@ 8,2 Say "=> Registro Deletado"
Else
@ 8,2 Say "=> Registro Válido "
EndIf
@ 10,2 Say "Ordem do Ãndice => " + Hb_NToS( IndexOrd() )
@ 11,2 Say "Registro Corrente => " + codigo + "-" + descricao
//DbCommit()
//Browse()
EndDo
Return Nil
Alexandre, bom Domingo, e se espirrar: Saúde!
:-Y