Utilizo a função ACHOICE() para montagem de um menu dinâmico, fiz a migração de xHarbour para Harbour e aparece o seguinte erro quando deleto (apago) o último ou penúltimo elemento do array:
Bound error: array access
Bisbilhotando no fonte achoice.prg consegui identificar a linha (520) em que ocorre o erro:
Código: Selecionar todos
...
IF ISNUMBER( nUserFunc )
DO CASE
CASE nUserFunc == AC_ABORT .OR. nMode == AC_NOITEM
IF nPos != 0
///// o erro eh na linha abaixo
DispLine( acItems[ nPos ], nTop + ( nPos - nAtTop ), nLeft, .T., .F., nNumCols )
ENDIF
lFinished := .T.
nPos := 0
...
Código: Selecionar todos
...
IF ISNUMBER( nUserFunc )
DO CASE
CASE nUserFunc == AC_ABORT .OR. nMode == AC_NOITEM
///// alterei a linha abaixo
IF nPos != 0 .AND. !EMPTY( LEN( acItems ) )
DispLine( acItems[ nPos ], nTop + ( nPos - nAtTop ), nLeft, .T., .F., nNumCols )
ENDIF
lFinished := .T.
nPos := 0
...Alguém já passou por isso ?
Lembrando que no xHarbour o fonte achoice.prg é totalmente diferente do Harbour.
