Borrar ultimo registro en TCBrowse

Borrar ultimo registro en TCBrowse

Postby miarcod » Thu Nov 10, 2005 6:02 pm

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  Expand view  RUN
#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
miarcod
 
Posts: 199
Joined: Tue Oct 11, 2005 2:17 pm

Postby miarcod » Fri Nov 11, 2005 11:06 pm

¿Es que no tiene solución?
miarcod
 
Posts: 199
Joined: Tue Oct 11, 2005 2:17 pm

Postby R.F. » Sat Nov 12, 2005 9:19 pm

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
Saludos
R.F.
R.F.
 
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Postby miarcod » Mon Nov 14, 2005 7:18 pm

Gracias voy a probar

Un saludo
miarcod
 
Posts: 199
Joined: Tue Oct 11, 2005 2:17 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 82 guests