Página 1 de 1

Error en el método ModifyItem de la clase TListBox

Publicado: Jue May 02, 2013 10:34 am
por jose-manuel-serrano
Buenos dí­as
He detectado un error en el Método "ModifyItem" de la clase "TListBox"
Enví­o ejemplo.
Cuando modificas el penúltimo registro con "ModifyItem" lo coloca el
último. Es porque se borra dicho registro antes de insertarlo, y al
añadirlo de nuevo, el penúltimo lo coloca al final.
He corregido el Método y lo enví­o
Original de Xailer:
===================
IF ::DeleteItem( nPos )
::InsertItem( nPos, cItem )
IF nPos == ::FnIndex
::SendMsg( LB_SETCURSEL, nPos - 1 )
ENDIF
ELSE
lRet := .F.
ENDIF
Modificado:
===========
IF ::InsertItem( nPos, cItem )
IF nPos + 1 = ::GetCount()
::DeleteItem( nPos )
ELSE
::DeleteItem( nPos + 1 )
ENDIF
IF nPos == ::FnIndex
::SendMsg( LB_SETCURSEL, nPos - 1 )
ENDIF
ELSE
lRet := .F.
ENDIF
Saludos
José Manuel Serrano
ProSer Informática
--

Error en el método ModifyItem de la clase TListBox

Publicado: Jue May 02, 2013 11:04 am
por jfgimenez
Jose Manuel,
gracias por el aviso. Pero lo que está mal no es el método ModifyItem(),
sino el método InsertItem(). Hay un >= que hay que cambiar por >, en la
lí­nea 268. El método InsertItem() quedarí­a así­:
METHOD InsertItem( nPos, cItem ) CLASS XListBox
LOCAL lRet := .T.
DEFAULT cItem TO "Listbox item"
IF nPos == Nil .OR. nPos > ::GetCount()
....
el resto, igual.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info

Error en el método ModifyItem de la clase TListBox

Publicado: Jue May 02, 2013 2:06 pm
por jose-manuel-serrano
Muchas gracias
Saludos
José Manuel Serrano
El 02/05/2013 11:04, Jose F. Gimenez escribió:
> Jose Manuel,
>
> gracias por el aviso. Pero lo que está mal no es el método ModifyItem(),
> sino el método InsertItem(). Hay un >= que hay que cambiar por >, en la
> lí­nea 268. El método InsertItem() quedarí­a así­:
>
> METHOD InsertItem( nPos, cItem ) CLASS XListBox
>
> LOCAL lRet := .T.
>
> DEFAULT cItem TO "Listbox item"
>
> IF nPos == Nil .OR. nPos > ::GetCount()
> ....
> el resto, igual.
>
>
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
> http://www.xailer.info