4D v16.3

RESOLVE POINTER

Accueil

 
4D v16.3
RESOLVE POINTER

RESOLVE POINTER 


 

RESOLVE POINTER ( pointeur ; nomVar ; numTable ; numChamp ) 
Paramètre Type   Description
pointeur  Pointeur in Pointeur duquel récupérer l'objet référencé
nomVar  Chaîne in Nom de la variable référencée ou chaîne vide
numTable  Entier long in Numéro de la table ou de l'élément de tableau référencé(e) ou 0 ou -1
numChamp  Entier long in Numéro du champ ou de l'élément de tableau 2D référencé ou 0 ou -1

RESOLVE POINTER récupère l'information de l'objet référencé par pointeur et la retourne dans les paramètres nomVar, numTable et numChamp.

Selon la nature de l'objet référencé par le pointeur, RESOLVE POINTER retourne les valeurs suivantes :

Objet référencéParamètres
nomVarnumTablenumChamp
Aucun (pointeur NIL)"" (chaîne vide)00
VariableNom de la variable-1-1
TableauNom du tableau-1-1
Elément de tableauNom du tableaunuméro de l'élément-1
Elément de tableau 2DNom du tableau 2Dnuméro de ligne de l'élémentnuméro de colonne de l'élément
Table"" (chaîne vide)numéro de la table0
Champ"" (chaîne vide)numéro de la tablenuméro du champ

Notes :

  • Si la valeur que vous passez dans le paramètre pointeur n'est pas de type pointeur, une erreur de syntaxe est générée.
  • La commande RESOLVE POINTER ne fonctionne pas avec les pointeurs vers des variables locales. En effet, par définition plusieurs variables locales de même nom pouvant exister à différents emplacements, il n’est pas possible pour la commande de connaître la variable à dépointer.

Dans un formulaire, vous créez un groupe de 100 variables saisissables qui s'appellent v1, v2... v100. Pour cela, vous procédez de la manière suivante :

  • Vous créez une variable saisissable que vous appelez v.
  • Vous définissez les propriétés de l'objet suivant vos besoins.
  • Vous associez la méthode suivante à l'objet :
 FaireQuelqueChose(Self` FaireQuelqueChose est une méthode projet de la base
  • Vous pouvez alors soit dupliquer la variable autant de fois que nécessaire, soit utiliser la fonctionnalité Tableau sur la grille de l'éditeur de formulaires.
  • Dans la méthode FaireQuelqueChose, si vous voulez connaître l'indice de la variable pour laquelle la méthode est appelée, vous écrivez le code suivant :
 RESOLVE POINTER($1;$vaNomVar;$vlNumTable;$vlNumChamp)
 $vlVarNum:=Num(Substring($vaNomVar;2))
  • En suivant ces étapes, vous avez écrit une fois seulement les méthodes objet pour les 100 variables : vous n'avez pas eu besoin d'écrire FaireQuelqueChose(1), FaireQuelqueChose(2)..., FaireQuelqueChose(100)).

Pour des raisons de débogage, vous voulez vérifier si le deuxième paramètre ($2) d'une méthode est un pointeur vers une table. Le début de votre méthode peut être écrit ainsi :

  ` ...
 If(◊Débogage)
    RESOLVE POINTER($2;$vaNomVar;$vlNumTable;$vlNumChamp)
    If(Not(($vlNumTable>0)&($vlNumChamp=0)&($vlNomVar="")))
  ` ATTENTION : Le pointeur n'est pas une référence à une table
       TRACE
    End if
 End if
  ` ...

Reportez-vous à l'exemple de la commande DRAG AND DROP PROPERTIES.

Voici un exemple de pointeur vers un tableau 2D :

 ARRAY TEXT(atCities;100;50)
 C_POINTER($city)
 atCities{1}{2}:="Rome"
 atCities{1}{5}:="Paris"
 atCities{2}{6}:="New York"
  // ...autres valeurs
 $city:=->atCities{1}{5}
 RESOLVE POINTER($city;$var;$rowNum;$colNum)
  //$var="atCities"
  //$rowNum="1"
  //$colNum="5"



Voir aussi  

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

 
PROPRIÉTÉS 

Produit : 4D
Thème : Langage
Numéro : 394

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
HISTORIQUE 

Créé : 4D v6
Modifié : 4D v15

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)