versión 6.0
Un array siempre tiene un elemento cero. Mientras el elemento cero no se muestra cuando un array maneja un objeto de formulario, no hay restricción para utilizarlo con el lenguaje.
Un ejemplo del uso del elemento cero es el caso del combo box de la sección Arrays y objetos de formulario.
Estos son otros dos ejemplos.
1. Si quiere ejecutar una acción sólo cuando usted hace clic en un elemento diferente del previamente seleccionado, debe hacer seguimiento de cada elemento seleccionado. Una manera de hacer esto es utilizar una variable de proceso en la cual usted mantiene el número del elemento seleccionado. Otra forma es utilizar el elemento cero del array:
` Método de objeto área de desplazamiento atNombres Case of : (Form event=On Load) ` Inicialización del array (como se mostró anteriormente) ARRAY TEXT (atNombres;5) ` ... ` Inicializar el elemento cero con el número ` de elemento actual seleccionado en su forma alfanúmerica ` Acá usted comienza sin elemento seleccionado atNombres{0}:="0" : (Form event=On Unload) ` No necesitamos más el array CLEAR VARIABLE(atNames) : (Form event=On Clicked) If (atNames#0) If (atNames#Num(atNombres{0})) vtInfo:="Haga clic en: "+atNombres{atNombres}+" que no fue seleccionado anteriormente." atNombres{0}:=String(atNombres) End if End if : (Form event=On Double Clicked) If (atNombres#0) ALERT ("Usted hace doble clic en: "+atNombres{atNombres} End if End case
2. En modo compatibilidad ASCII, cuando envía o recibe un flujo de caracteres de o hacia un documento o puerto serial, 4D le ofrece la posibilidad de filtrar los códigos ASCII entre plataformas y sistemas que utilizan diferentes mapas ASCII con los comandos USE ASCII MAP, Mac to ISO, ISO to Mac, Mac to Win y Win to Mac.
En algunos casos, usted podría querer controlar integralmente la traducción de los códigos ASCII. Una forma de hacerlo es utilizar un array de enteros de 255 elementos, donde el elemento N es la traducción ASCII del carácter cuya fuente de código ASCII es N. Por ejemplo, si el código ASCII #187 debe ser traducido como #156, usted escribe <>aiMapaSalida{187}:=156 y <>aiMapaEntrada{156}:=187 en el método que inicializa los arrays interprocesos utilizados en la base. Entonces puede enviar un flujo de caracteres con el siguiente método de proyecto personalizado:
` X ENVIAR PAQUETE ( Texto { ; Tiempo } ) For ($vlCar;1;Length($1)) $1[[vlCar]]:=Char(<>aiMapaSalida
{Ascii($1[[vlCar]])}) End for If (Count parameters>=2) SEND PACKET ($2;$1) Else SEND PACKET ($1) End if
` X Recibir Paquete ( Text { ; Tiempo } ) -> Texto If (Count parameters>=2) RECEIVE PACKET ($2;$1) Else RECEIVE PACKET ($1) End if $0:=$1 For ($vlCar;1;Length($1)) $0[[vlCar]]:=Char(<>aiMapaEntrada
{Ascii($0[[vlCar]])}) End for
En este ejemplo avanzado, si un flujo de caracteres contiene caracteres NULL (código ASCII cero) se envía o recibe, el elemento cero de los arrays <>aiMapaSalida y <>aiMapaEntrada jugará su papel como otro elemento de los 255 elementos de los 255 arrays.
Ver también