Clipper/FiveWin - Folder y Listbox

 
Vista:

Folder y Listbox

Publicado por Ricardo (2 intervenciones) el 26/10/2006 00:01:58
Amigos
Tengo un folder con 2 pestañas, y en cada pestaña el mismo Listbox con información filtrada de la misma base de datos. El problema esta que cuando elimino el ultimo registro de cualquiera de los listbox, este no desaparece. En cambio si elimino uno intermedio no sucede lo mismo.
Por ejemplo, tengo 10 registros en una pestaña y elimino el registro 10, este se mantiene en pantalla y si le doy click al registro me aprece el registro 9 y el mismo esta encima.
En cambio si elimino el registro 5, me aparecen solo los 9 registros validos.
Ahora si le doy un gotop al listbox, el puntero no va al inicio del listbox y en el ultimo registro eliminado al darle click me aparece el registro 1 y si le doy cursor abajo van apareciendo los demas registro y en pantalla se ven los registros duplicados.
Como puedo solucionarlo, refresco el listbox, el folder y el dialogo que los contiene y nada.
Saludos y gracias
Ricardo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Folder y Listbox

Publicado por ingrid (1 intervención) el 26/10/2006 17:00:25
ricardo, tuve el mismo problema hace mucho, y lo solucioné agregnad esto que me pasó Gabriel Pascual.

Brw:gotop(),Brw:gobottom(),Brw:gotop(),Brw:SetFocus(),Brw:Refresh()

Saludos, Ingrid
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Folder y Listbox

Publicado por Alvaro (79 intervenciones) el 26/10/2006 19:23:04
La idea de Ingrid es muy buena. Pero yo uso, normalmente, lo siguiente:

oLbx:UPSTABLE( ), oLbx(REFRESH( )

siendo el objeto de la listbox oLbx.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Folder y Listbox

Publicado por Gabriel Pascual (913 intervenciones) el 27/10/2006 00:08:05
Te explico con detalle que pasa:

El problema es un bug de repintado con el ultimo registro de un browse, cuando este no esta en la ultima linea visible dentro del area del control, es un error conocido de Fivewin.

Digamos que tienes un browse donde son visibles 10 lineas, pero tu base de datos solo tiene 5 registros, obviamente, el ultimo registro visible estara mas o menos por la mitad del browse, es decir, no esta en la ultima linea visible, si no a la mitad del control.

Si tu borras este utlimo registro, tendras el comportamiento anomalo que comentas, el error de repintado, la unica forma de solucionarlo es "forzar" al browse a un repintado general, para que vuelva a calcular coordenadas, esto se hace llamando a los metodos gotop(), gobottom() y finalmente un refresh(), la llamda a los metodos de posicionamiento forza al browse a calcular los registro visibles, y la llamada a Refresh() hace el pintado final, de tal forma que tu browse queda perfecto sin problemas de repintado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar