Page 1 of 1

Borrar ultimo registro en TCBrowse

Posted: Thu Nov 10, 2005 6:02 pm
by miarcod
Hola, seguro que es una tontería pero no consiguo programarlo

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
Para borrar el registro se usa doble click

Gracias

Posted: Fri Nov 11, 2005 11:06 pm
by miarcod
¿Es que no tiene solución?

Posted: Sat Nov 12, 2005 9:19 pm
by R.F.
No tiene solucion, mas que la chapucera, que consiste en hacer un :

oBrw:Gotop()
oBrw:GoBottom()

antes el oBrw:Refresh()

para evitar que se "descuadre" el repintado

Ese es un bug que tienen TODOS los browses de FW

Posted: Mon Nov 14, 2005 7:18 pm
by miarcod
Gracias voy a probar

Un saludo