4D v16.3

RESOUDRE POINTEUR

Accueil

 
4D v16.3
RESOUDRE POINTEUR

RESOUDRE POINTEUR 


 

RESOUDRE POINTEUR ( 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

RESOUDRE POINTEUR 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, RESOUDRE POINTEUR 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 RESOUDRE POINTEUR 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 :
 RESOUDRE POINTEUR($1;$vaNomVar;$vlNumTable;$vlNumChamp)
 $vlVarNum:=Num(Sous chaine($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 :

  ` ...
 Si(◊Débogage)
    RESOUDRE POINTEUR($2;$vaNomVar;$vlNumTable;$vlNumChamp)
    Si(Non(($vlNumTable>0)&($vlNumChamp=0)&($vlNomVar="")))
  ` ATTENTION : Le pointeur n'est pas une référence à une table
       TRACE
    Fin de si
 Fin de si
  ` ...

Reportez-vous à l'exemple de la commande PROPRIETES GLISSER DEPOSER.

Voici un exemple de pointeur vers un tableau 2D :

 TABLEAU TEXTE(atCities;100;50)
 C_POINTEUR($city)
 atCities{1}{2}:="Rome"
 atCities{1}{5}:="Paris"
 atCities{2}{6}:="New York"
  // ...autres valeurs
 $city:=->atCities{1}{5}
 RESOUDRE POINTEUR($city;$var;$rowNum;$colNum)
  //$var="atCities"
  //$rowNum="1"
  //$colNum="5"



Voir aussi  

Champ
Est une variable
Nil
Pointeur vers
PROPRIETES GLISSER DEPOSER
Table

 
PROPRIÉTÉS 

Produit : 4D
Thème : Langage
Numéro : 394
Nom intl. : RESOLVE POINTER

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)