Estoy modificando un diálogo, que en principio sólo tenía un color de fondo, para adaptarlo a una imagen de fondo.
Dado que en los say tenían el color de la letra y del fondo, para adaptarlos puse la clausula transparent al say cambiando el código de esta manera :
- Code: Select all Expand view
- * ------------------------------------------------------------------
FUNCTION PNomPac(oDlg,aTextos)
* ------------------------------------------------------------------
Local oSay[0]
Local nInd := 0
Local nTotal := Len(aTextos)
ASIZE(oSay,nTotal)
For nInd := 1 TO nTotal
REDEFINE SAY oSay[nInd] VAR aTextos[nInd] ID nInd+100 OF oDlg FONT oFont ;
COLOR RGB(0,0,0),RGB(153,255,255) FONT oFont
EndFor
Return nil
- Code: Select all Expand view
- * ------------------------------------------------------------------
FUNCTION PNomPac(oDlg,aTextos)
* ------------------------------------------------------------------
Local oSay[0]
Local nInd := 0
Local nTotal := Len(aTextos)
ASIZE(oSay,nTotal)
For nInd := 1 TO nTotal
REDEFINE SAY oSay[nInd] VAR aTextos[nInd] ID nInd+100 OF oDlg FONT oFont TRANSPARENT
EndFor
Return nil
El caso es que sin la clausula transparent no da errores de ejecución y se ve el diálogo, mal por no tener el color del fondo el SAY pero se ve.
En cambio si pongo que sea transparente da un error de rango en el Array, el cual está definido con la longitud de aTextos, que en este caso es 15
y salta al 16. Este es el error : Time from start: 0 hours 0 mins 2 secs
Error occurred at: 26-01-2013, 12:44:17
Error description: Error BASE/1132 Error de rango: acceso al array
Args:
[ 1] = A { ... }
[ 2] = N 16
Deciros que la línea del error es la línea del REDEFINE y entre el FOR y el REDEFINE he puesto lo siguiente para ver si pillo el error
- Code: Select all Expand view
- If nInd > 15
msginfo(nInd)
exit
EndIf
pues bien se lo salta y casca el error en la línea del REDEFINE, como si en esas líneas nInd no fuera mayor de 15
Antonio, aún estoy a la espera de que me digas por qué el TxBrowse casca de una versión a otra.