Página 1 de 1
Error con tTreeViewMod
Publicado: Mar May 16, 2023 9:48 am
por bingen
Buenas Ignacio, estoy cambiado un Tree clásico a moderno y venga a darme error.
Si tomas tu propio sample de TreeViewMod y cargas una carpeta de archivos o creas el form2 con varios elementos, verás que solo con hacer click sobre el nombre de cualquiera de los item da este error. También si te mueves arriba y abajo con el teclado.

- Error tTreeViewMod.png (26.42 KiB) Visto 1384 veces
Gracias.
Re: Error con tTreeViewMod
Publicado: Mar May 16, 2023 1:58 pm
por ignacio
Hola,
Adjunto correción. Un saludo.
Código: Seleccionar todo
METHOD SetIndex( nValue, lDel ) CLASS XListBoxMod
LOCAL nPos, nLen
LOCAL lRet, lChangeSel := .f.
DEFAULT lDel TO .T., nValue TO ::FnIndex
nLen := ::RecCount()
IF lDel
::FaSelected := {}
lChangeSel := .t.
ENDIF
IF nValue > 0 .AND. nValue <= nLen
IF nValue != ::FnIndex
lRet := ::OnChange( ::FnIndex, @nValue )
ENDIF
IF lRet == NIL .OR. lRet
::FnIndex := nValue
::FcText := ::ItemText( nValue ) <<<<<<<<<<<<<<<<<<<<<<<<<<<< CAMBIO REALIZADO
::cSeek := ""
::lFound := .F.
::AddSelected( nValue )
lChangeSel := .f. // Event triggered at AddSelected()
nPos := ::nItemHeight * ( nValue - 1 )
IF nPos < -::nClientTop
::nClientTop := -nPos
ELSEIF ( nPos + ::nItemHeight ) > ( ::nClientHeight - ::nClientTop )
::nClientTop := ::nClientHeight - nPos - ::nItemHeight
ENDIF
::OnChanged()
::Refresh()
ENDIF
ELSEIF nLen == 0
::FnIndex := 0
lChangeSel := .f.
::Refresh()
ENDIF
IF lChangeSel
::OnChangeSelected( ::FaSelected )
ENDIF
RETURN ::FnIndex