version 6.0
RESOUDRE POINTEUR (pointeur; nomVar; numTable; numChamp)
Paramètre | Type | Description | |
pointeur | Pointeur | Pointeur duquel récupérer l'objet référencé | |
nomVar | Alpha | Nom de la variable référencée ou chaîne vide | |
numTable | Numérique | Numéro de la table ou de l'élément de tableau | |
référencé(e) ou 0 ou -1 | |||
numChamp | Numérique | Numéro du champ référencé ou 0 |
Description
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 | ||
nomVar | numTable | numChamp | |
Aucun (pointeur NIL) | "" (chaîne vide) | 0 | 0 |
Variable | Nom de la variable | -1 | 0 |
Tableau | Nom du tableau | -1 | 0 |
Elément de tableau | Nom du tableau | numéro de l'élément | 0 |
Table | "" (chaîne vide) | numéro de la table | 0 |
Champ | "" (chaîne vide) | numéro de la table | numé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.
Exemples
(1) 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)).
(2) 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 ` ...
(3) Reportez-vous à l'exemple de la commande PROPRIETES GLISSER DEPOSER
Référence
Champ, Est une variable, Nil, Pointeur vers, PROPRIETES GLISSER DEPOSER, Table.