J'ai modifié le Post pour m'éclaircir un peu au sujet de TreeGadget.
Alors voici une petite documentation pour effectuer une demi douzaine d'actions sur un TreeGadget avec la procedure Arbr() présente en tête de l'exemple source plus bas.
Code : Tout sélectionner
;*************************************************************************************
;Arbr(Action, Arbre, Clef, Racine) ¤ Traite l'arbre représenté par un TreeGadget
;Ollivier 07/07
;*************************************************************************************
;Entrées ACTION. LONG Contient le n° de l'action que la procédure doit exécuter
; ARBRE. LONG Contient le n° du TreeGadget que la procédure doit modifier
; CLEF. LONG Contient le n° du GadgetItem auquel la procédure se réfère
; RACINE. STRING Contient la chaîne (GadgetItemText) que la procédure peut utiliser
; >>>> (Pour les fichiers) Contient le nom du fichier que la procédure peut traiter
;
;Sortie REACTION. LONG
; >>>> (Pour les fichiers) Contient la réussite du transfert avec le fichier traité
;
;
; -------------------------------------------------------------------------------------
; ACTION = 0 : Efface entièrement l'arbre
; -------------------------------------------------------------------------------------
;Entrees: ARBRE N° de l'arbre à effacer
; RACINE Contenu de la clef racine une fois l'arbre effacé
;Rem S'il n'y a plus de clef, il n'y a plus d'édition possible.
; Donc une clef racine est recréée après l'effacement de l'arbre
;Sortie REACTION Pointeur vers la chaîne contenant le rapport d'erreur
; -------------------------------------------------------------------------------------
; ACTION = 1 : Crée une clef 'soeur ainée' de la clef spécifiée
; -------------------------------------------------------------------------------------
;Entrees: ARBRE N° de l'arbre à modifier
; CLEF N° de la clef spécifiée
; RACINE Contenu de la clef 'soeur ainée'
;Rem La 'soeur ainée' est la première clef dans la liste
; qui contient la clef spécifiée.
; Une liste peut être considérée comme l'ensemble de clef contigües de même
; niveau.
; La 'soeur ainée' a le même niveau que la clef spécifiée
;Sortie REACTION Pointeur vers la chaîne contenant le rapport d'erreur
; -------------------------------------------------------------------------------------
; ACTION = 2 : Crée une clef 'soeur cadette' de la clef spécifiée
; -------------------------------------------------------------------------------------
;Entrees: ARBRE N° de l'arbre à modifier
; CLEF N° de la clef spécifiée
; RACINE Contenu de la clef 'soeur cadette'
;Rem La 'soeur cadette' est la clef qui succède immédiatement
; à la clef spécifiée
; La 'soeur cadette' a le même niveau que la clef spécifiée
;Sortie REACTION Pointeur vers la chaîne contenant le rapport d'erreur
; -------------------------------------------------------------------------------------
; ACTION = 3 : Crée une clef 'soeur benjamine' de la clef spécifiée
; -------------------------------------------------------------------------------------
;Entrees: ARBRE N° de l'arbre à modifier
; CLEF N° de la clef spécifiée
; RACINE Contenu de la clef 'soeur benjamine'
;Rem La 'soeur benjamine' est la dernière clef dans la liste
; qui contient la clef spécifiée
; La 'soeur benjamine' a le même niveau que la clef spécifiée
;Sortie REACTION Pointeur vers la chaîne contenant le rapport d'erreur
; -------------------------------------------------------------------------------------
; ACTION = 4 : Crée une clef 'fille ainée' de la clef spécifiée
; -------------------------------------------------------------------------------------
;Entrees: ARBRE N° de l'arbre à modifier
; CLEF N° de la clef spécifiée
; RACINE Contenu de la clef 'fille ainée'
;Rem La 'fille ainée' est la première clef dans la sous-liste
; contenue par la clef spécifiée
; La 'fille ainée' a un niveau N+1 par rapport au niveau N
; de la clef spécifiée
;Sortie REACTION Pointeur vers la chaîne contenant le rapport d'erreur
; -------------------------------------------------------------------------------------
; ACTION = 5 : Crée une clef 'fille benjamine' de la clef spécifiée
; -------------------------------------------------------------------------------------
;Entrees: ARBRE N° de l'arbre à modifier
; CLEF N° de la clef spécifiée
; RACINE Contenu de la clef 'fille benjamine'
;Rem La 'fille benjamine' est la dernière clef dans la sous-liste
; contenue par la clef spécifiée
; La 'fille benjamine' a un niveau N+1 par rapport au niveau N
; de la clef spécifiée
;Sortie REACTION Pointeur vers la chaîne contenant le rapport d'erreur
; -------------------------------------------------------------------------------------
; ACTION = 8 : Enregistre l'arbre dans un fichier spécifié
; -------------------------------------------------------------------------------------
;Entrees: ARBRE N° de l'arbre à enregistrer
; RACINE Nom du fichier d'enregistrement
;Rem Le format utilisé est une succession de champs
; STRING + LONG pour chaque clef.
; STRING = Contenu de la clé en cours d'enregistrement
; LONG = Niveau de la clé en cours d'enregistrement
;Sortie REACTION Pointeur vers la chaîne contenant le rapport d'erreur
; -------------------------------------------------------------------------------------
; ACTION = 9 : Charge l'arbre depuis un fichier spécifié
; -------------------------------------------------------------------------------------
;Entrees: ARBRE N° de l'arbre à charger
; RACINE Nom du fichier de chargement
;Rem Le format utilisé est une succession de champs
; STRING + LONG pour chaque clef.
; STRING = Contenu de la clé en cours d'enregistrement
; LONG = Niveau de la clé en cours d'enregistrement
;Sortie REACTION Pointeur vers la chaîne contenant le rapport d'erreur