RESOLVE POINTER

4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 6.0


RESOLVE POINTER (puntero; nomVar; numTabla; numCamp)

ParámetroTipoDescripción
punteroPunteroPuntero del cual recuperar el objeto referenciado
nomVarAlfaNombre de la variable referenciada o cadena vacía
numTablaNuméricoNúmero de la tabla o del elemento del
array referenciado o 0 o -1
numCampNuméricoNúmero del campo referenciado o 0

Descripción

El comando RESOLVE POINTER recupera la información del objeto referenciado por la expresión de puntero puntero y la devuelve en los parámetros nomVar, numTabla, y numCamp.

Dependiendo de la naturaleza del objeto referenciado, RESOLVE POINTER devuelve los siguientes valores:

Objeto referenciadoParámetros
nomVarnumTablanumCamp
Nada (NIL pointer)"" (cadena vacía)00
VariableNombre de la variable-10
ArrayNombre del array-10
Elemento de array Nombre del arraynúmero del elemento0
Tabla"" (cadena vacía)número de la tabla0
Campo"" (cadena vacía)número de la tablanúmero del campo

Notas:

Si el valor que pasa en puntero no es una expresión de tipo puntero, se generará un error de sintaxis.

El comando RESOLVE POINTER no funciona con punteros a variables locales. De hecho, por definición muchas variables locales con el mismo nombre podrían existir en diferentes lugares, de manera que no es posible para el comando encontrar la variable correcta.

Ejemplos

1. En un formulario, usted crea un grupo de 100 variables editables llamadas v1, v2... v100. Para hacer esto, usted realiza los siguientes pasos:

a. Crea una variable editable que llama v.

b. Define las propiedades del objeto.

c. Asocia el siguiente método al objeto:

   HacerAlgo (Self)  ` HacerAlgo es un método de proyecto de su base

d. En este punto, puede duplicar la variable tantas veces como sea necesario, o utilizar la funcionalidad Duplicar sobre matriz en el editor de formularios.

e. En el método HacerAlgo, si necesita conocer el índice de la variable para la cual se llama el método, escribe:

   RESOLVE POINTER($1;$vsNomVar;$vlNumTabla;$vlNumCampo)
   $vlNomVar:=Num(Substring($vsNomVar;2))

Note que construyendo su formulario de esta manera, usted escribe los métodos para las 100 variables sólo una vez; no necesita escribir HacerAlgo (1), HacerAlgo (2)...,HacerAlgo (100).

2. Por propósitos de depuración, necesita verificar que el segundo parámetro ($2) de un método es un puntero a una tabla. Al comienzo de este método, escribe:

      ` ...
   If (<>DebugOn)
      RESOLVE POINTER($2;$vsNomVar;$vlNumTabla;$vlNumCampo)
      If (Not(($vlNumTabla>0)&($vlNumCampo=0)&($vsNomVar="")))
         ` ATENCIÓN: El puntero no es una referencia a una tabla
         TRACE
      End
   End if
      ` ...

3. Ver el ejemplo del comando DRAG AND DROP PROPERTIES.

Ver también

DRAG AND DROP PROPERTIES, Field, Get pointer, Is a variable, Nil, Table.


4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente