Lo que me pasa es que al borrar el último registro de un browse, el pintado de los registros que se muestran en la pantalla no lo hace bien, esto solo sucede si el browse no esta completo.
El codigo que utilizo es este
Code: Select all
#include "FiveWin.ch"
#include "TcBrowse.ch"
#define FICHERO "PRUEBA.DBF"
#define INDICE "PRUEBA.CDX"
//-----------------------------------------------------------------------//
function Prueba()
FIELD NOMBRE
Local oDlg, oBrw, oDbf, oCol
CrearDbf()
SELECT PRUEBA
DATABASE oDbf
DEFINE DIALOG oDlg FROM 0,0 TO 500,400 PIXEL
@ 10,10 BROWSE oBrw PIXEL SIZE 160,240 OF oDlg ;
ON DBLCLICK Borrar(oDbf, oBrw)
oDbf:GoTop()
oBrw:SetoDbf( oDbf )
oBrw:cAlias := "" // PARA QUE NO DE ERROR
ADD COLUMN TO BROWSE oBrw DATA oBrw:oDbf:NOMBRE;
HEADER "Nombre"
ACTIVATE DIALOG oDlg CENTER
return nil
//-----------------------------------------------------------------------//
STATIC FUNCTION CrearDbf()
FIELD NOMBRE
Local aDbf, i, n
aDbf := {}
AADD( aDbf, { "NOMBRE", "C", 40, 0 } )
DBCREATE( FICHERO, aDbf)
dbcloseall()
use PRUEBA
pack
INDEX ON NOMBRE TAG "PRUEBAS1" TO (INDICE)
n := 20
MsgGet("Registros", "Cuantos agregamos?", @n)
for i = 1 to n
APPEND BLANK
REPLACE NOMBRE WITH "ZONA" + ALLTRIM(STR(i))
next i
RETURN NIL
//-----------------------------------------------------------------------//
STATIC FUNCTION Borrar(oDbf, oBrw)
If MsgYesNo("Borrar registro")
oDbf:Delete()
oBrw:Refresh()
EndIf
return nil
Gracias