IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Parcourir reseau de noeuds [WD17]


Sujet :

WinDev

  1. #21
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Bonjour,

    Je vois 2 approches pour faire cette fonction :
    1. Exécuter une seule requête (ou un parcours de fichier), construire un arbre en mémoire à partir de celle-ci, puis parcourir cet arbre en profondeur. Avantages : c'est rapide et ça permet de réutiliser l'arbre pour d'éventuelles nouvelles fonctions.

    2. Travailler directement sur le fichier exécutant des requêtes au fil de l'eau. Avantages : probablement plus facile sous WD et théoriquement moins gourmand en mémoire.

    Mais j'ai encore un problème avec l'exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    num_enr      élément    élément_prec  situation    poste
    1            100E02      100E01             0      3100004
    2            100000      100N01             1      3100004
    Comment 100000 peut-il être fils de 100N01 ? C'est pas l'inverse plutôt ?
    Et enfin, y a-t-il une racine pour chaque départ ? (ici 100000), et pour cette racine, a-t-on bien une chaîne vide dans élément_prec ?

  2. #22
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Comment 100000 peut-il être fils de 100N01 ? C'est pas l'inverse plutôt ?
    En effet, c'est l'inverse

    Et enfin, y a-t-il une racine pour chaque départ ? (ici 100000), et pour cette racine, a-t-on bien une chaîne vide dans élément_prec ?
    La racine pour chaque départ 1 est en réalité 100000 (200000,300000,...900000 pour les autres)et les dérivations commencent véritablement à partir de 101000 et ainsi de suite
    L'élément précédent de 100000 est le numéro du poste 3100004 tout simplement.

    d'où le schéma plus parlant:
    Fichiers attachés Fichiers attachés
    Cordialement,
    J'ose espérer que m'a contribution vous a été d'une grande aide.
    Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
    Paul

  3. #23
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    OK, alors voici une proposition de code, pas testée, sans gestion des erreurs, écrite vite fait, avec ce que j'ai compris du problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtabPile	est un tableau de chaînes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    PROCEDURE TraiteTout()
    sReqListeDéparts	est une chaîne = [
    SELECT DISTINCT
    	poste,
    	LEFT(élément, 1) AS numéro
    FROM
    	ELEMENT
    ]
    sdDépart			est une Source de Données
     
    HExécuteRequêteSQL(sdDépart, sReqListeDéparts)
    POUR TOUT sdDépart
    	// Lance un parcours en profondeur à partir de la racine
    	TraiteElémént(sdDépart.poste, sdDépart.numéro + "00000")
    FIN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    PROCEDURE TraiteElémént(sPoste, sElément)
    sReqListeFils	est une chaîne = [
    SELECT
    	élément
    FROM
    	ELEMENT
    WHERE
    	élément_prec = '%1'
    	AND poste = '%2'
    ]
    sdFils			est une Source de Données	= "sdFils" + DonneIdentifiant()
    bEmpilé			est un booléen	= Faux
     
    HExécuteRequêteSQL(sdFils, ChaîneConstruit(sReqListeFils, sElément, sPoste))
    // Si on est sur une feuille ou un noeud à plusieurs fils,
    // on génère une liste de segments et on empile l'élément en cours
    SI HNbEnr(sdFils) <> 1 ALORS
    	POUR i = 1 _A_ TableauOccurrence(gtabPile)
    		HRAZ(SEGMENT)
    		SEGMENT.Départ = gtabPile[i]
    		SEGMENT.Arrivée = sElément
    		HAjoute(SEGMENT)
    	FIN
    	TableauAjoute(gtabPile, sElément)
    	bEmpilé = Vrai
    FIN
    // Continue le parcours en profondeur
    POUR TOUT sdFils
    	TraiteElémént(sPoste, sdFils.élément)
    FIN
    // Dépile l'élément en cours
    SI bEmpilé ALORS
    	TableauSupprime(gtabPile, TableauOccurrence(gtabPile))
    FIN
    PS. je viens de corriger ce code car j'avais oublié d'utiliser le n° de poste dans le parcours.

  4. #24
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Ok,
    Merci.
    Je fais les aménagements adéquats, je teste et je te tiens au courans d'ici quelques minutes.
    Cordialement,
    J'ose espérer que m'a contribution vous a été d'une grande aide.
    Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
    Paul

  5. #25
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    J'ai oublié une chose, c'est de renommer sdFils à chaque instance :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sdFils est une source de données = "sdFils" + DonneIdentifiant()
    C'est quelque chose que je n'ai plus besoin de faire dans mes projets donc forcément j'ai oublié.

  6. #26
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    J'ai une erreur sur la procédure TraiteElément
    Apparemment la requête ne s'est pas initialisée.
    car
    Ligne 33 :SI HNbEnr(sdFils) <> 1 ALORS sdFils1 est inconnu dans l'analyse,..;S'il s'agit d'une requête....

    Quelle peut être la source de cette non initialisation de la requête.
    Cordialement,
    J'ose espérer que m'a contribution vous a été d'une grande aide.
    Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
    Paul

  7. #27
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    La suite du message d'erreur que vous donnez tronqué doit être :
    "... du projet ou d'une requête SQL, vérifiez
    que cette requête a été déclarée avant par HExécuteRequête pour une
    requête du projet ou par HExécuteRequêteSQL pour une requête SQL."

    Comme l'a mentionné hibernatus, la gestion des erreurs (dont HExécuteRequêteSQL) n'est pas faite. Il suffit d'afficher l'erreur pour en savoir plus comme l'indique l'exemple de l'aide de HExecuteRequeteSQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI PAS HExécuteRequêteSQL(REQ, hRequêteDéfaut, sMaReq) ALORS
    Erreur(HErreurInfo())
    ...

  8. #28
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Bonjour Vmolines,
    Il y avait un soucis sur une rubrique, c'est reglé.
    Mais mon fichier reste vide.Je vais encore bien regarder la partie d'ajout.
    Cordialement,
    J'ose espérer que m'a contribution vous a été d'une grande aide.
    Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
    Paul

  9. #29
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Essayez de faire du pas à pas dans le debugger, le problème devrait apparaître immédiatement.

    En revanche, rétrospectivement je me dis que mon code abuse un peu des requêtes : on peut avoir pas mal de sources de données ouvertes en même temps selon la profondeur de l'arbre.
    Donc quand vous aurez quelque chose qui marche il sera peut-être intéressant d'écrire une fonction qui exécute sReqListeFils et récupère tout le résultat dans un tableau de chaînes. En utilisant cette fonction à la place de la requête, vous n'avez plus besoin de renommer sdFils (local à la nouvelle fonction) et seules 2 sources de données sont ouvertes en même temps au maximum (sdDépart et sdFils). Le HNbEnr devient TableauOccurrence, le POUR TOUT sdFils devient POUR TOUT sFils DE tabFils etc.

  10. #30
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Citation Envoyé par Hibernatus34 Voir le message
    Essayez de faire du pas à pas dans le debugger, le problème devrait apparaître immédiatement.

    En revanche, rétrospectivement je me dis que mon code abuse un peu des requêtes : on peut avoir pas mal de sources de données ouvertes en même temps selon la profondeur de l'arbre.
    Donc quand vous aurez quelque chose qui marche il sera peut-être intéressant d'écrire une fonction qui exécute sReqListeFils et récupère tout le résultat dans un tableau de chaînes. En utilisant cette fonction à la place de la requête, vous n'avez plus besoin de renommer sdFils (local à la nouvelle fonction) et seules 2 sources de données sont ouvertes en même temps au maximum (sdDépart et sdFils). Le HNbEnr devient TableauOccurrence, le POUR TOUT sdFils devient POUR TOUT sFils DE tabFils etc.
    Ok je vais modifier le code et je vous tiens au courant à tous.
    Cordialement,
    J'ose espérer que m'a contribution vous a été d'une grande aide.
    Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
    Paul

  11. #31
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    le coupabe est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sReqListeFils	est une chaîne = [
    SELECT
    	élément
    FROM
    	ELEMENT
    WHERE
    	élément_prec = '%1'
    	AND poste = '%2'
    ]
    en effet,Si vous voyez mon tout premier poste.j'ai mis le numéro de poste en paramètre afin que l'utilisateur puisse lister tous les éléments de ce poste.

    Donc va falloir que je modifie cette requête et te tiens au courant.
    Cordialement,
    J'ose espérer que m'a contribution vous a été d'une grande aide.
    Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
    Paul

  12. #32
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Etes vous sûr d'avoir compris mon code ?
    La requête sReqListeFils prend bien un numéro de poste en paramètre, c'est nécessaire puisque chaque numéro de noeud n'est unique que pour un poste donné (si j'ai bien compris).

    En fait, pour faire un parcours sur un seul poste, c'est la fonction TraiteTout() qu'il faut modifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    PROCEDURE TraiteTout(sNumPoste = "")
    sReqListeDéparts	est une chaîne = [
    SELECT DISTINCT
    	poste,
    	LEFT(élément, 1) AS numéro
    FROM
    	ELEMENT
    ]
    sCondPoste			est une chaîne
    sdDépart			est une Source de Données
     
    SI sNumPoste <> "" ALORS
    	sCondPoste = RC + "WHERE poste = '" + sNumPoste + "'"
    FIN
    HExécuteRequêteSQL(sdDépart, sReqListeDéparts + sCondPoste)
    POUR TOUT sdDépart
    	// Lance un parcours en profondeur à partir de la racine
    	TraiteElémént(sdDépart.poste, sdDépart.numéro + "00000")
    FIN

  13. #33
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Bonjour Hibernatus34,
    J'ai regardé de plus près ta requête ce matin après un tour sur le débogueur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sReqListeFils est une chaîne = [
    SELECT
    élément
    FROM
    ELEMENT
    WHERE
    élément_prec = '%1'
    AND poste = '%2'
    ]
    vous sélectionnez les éléments dont les éléments précédents termine par (le caractère)1 et dont le numéro de poste termine par (le caractère)2.
    Sauf que:
    élément_prec = '%1' sous entend ici que l'élément précédent devient fils du nœud de la ligne principale.Ce qui n'est pas dans le sens de notre objectif.En effet,
    si on est sur le nœud 101000 son fils est 101N01,mais son élément précédent est 100000.
    D'autre part, vous dites:
    poste = '%2' Le numéro de poste n'a en réalité rien à voir avec les numéro de fils ou nœud, il est un numéro unilatéral.Cela aurait pu être 524852 3100002 ou 3100004.
    En définitive,la première condition pourrait être vrai si on savait d'avance que tel élément est fils de .
    Autre précision:
    Si on a déjà dérivé sur une branche jusqu'à la lettre Q (à droite) par exemple.le nœud prochain(de la ligne principale) sur lequel on va dériver commencera par R (toujours à droite).

    d'où le schéma:
    Fichiers attachés Fichiers attachés
    Cordialement,
    J'ose espérer que m'a contribution vous a été d'une grande aide.
    Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
    Paul

  14. #34
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    non en fait la chaine correspondant à la requête peut obtenir 2 paramètres qui prendront la place de %1 et de %2 !

  15. #35
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Citation Envoyé par Nicolas_Jeanneau Voir le message
    non en fait la chaine correspondant à la requête peut obtenir 2 paramètres qui prendront la place de %1 et de %2 !
    Exactement.

    C'est parce que je n'exécute pas sReqListeFils mais ChaîneConstruit(sReqListeFils, sElément, sPoste).

    La requête en bon français donne ceci :
    Donne-moi la liste des éléments qui ont pour père l'élément <%1> du poste n° <%2>

  16. #36
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Bon beh je crois que j'ai rien comme résultat.Donc je vais abandonner pour essayer de reflechir sur autre chose, peut être en revenant je vais pouvoir débloquer la situation.
    Je te remercie largement Hibernatus34 pour avoir prie ton temps pour me proposer des bouts de codes.
    Toutefois, si le problème interresse quelqu'un d'autre qu'Hibernatus il peut le faire savoir sur ce poste afin qu'un cheminement de solution soit trouvé.
    Cordialement,
    J'ose espérer que m'a contribution vous a été d'une grande aide.
    Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
    Paul

  17. #37
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    C'est pas des bouts de code que j'ai donnés, c'est la solution complète (sauf bugs) d'après les éléments que vous avez bien voulu nous donner.
    Envoyez-moi un fichier "ELEMENT" et je vous répondrai par un code testé.

  18. #38
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    num_enr      élément    élément_prec  situation    poste
    1            100E02      100E01             0      3100004
    2            100000      100N01             1      3100004
    dans le fichier joint, élément c'est El_codif , élément_prec c'est El_codif_prec.
    le poste c'est Codif_Poste_Support

    Tu remarqueras aussi que les numéros des enregistrements commencent à partir de 2524.J'ai enlevé les donnés du haut, car ces données ne concernent pas la codification des supports.Elles sont propre à d'autres prérogatives du projet.
    Tu peux importer simplement le fichier Excel vers une analyse.

    Il semble aussi que certains ne sont pas d'accord que j'abandonne(au vu des votes).Je leur dis ok, je n'abandonne plus, je continue de reflechir et tester des trucs.Je tiens bon les gars.
    Fichiers attachés Fichiers attachés
    Cordialement,
    J'ose espérer que m'a contribution vous a été d'une grande aide.
    Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
    Paul

  19. #39
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Bonjour,

    J'ai testé et il s'avère que le code posté ici fonctionne.
    J'avais quand même oublié de stocker le n° de poste dans le fichier segment.

    Voici un projet complet permettant de tester le code.
    Fichiers attachés Fichiers attachés

  20. #40
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Je dis bravo à notre ami Hibernatus34 qui a résolu ce problème.
    En effet,nous etions tellement regardé sur le forum qu'il fallait qu'on le trouve.
    Je te dis encore merci pour tout le temps que tu as mis pour résoudre mon problème.


    Paulnero
    Cordialement,
    J'ose espérer que m'a contribution vous a été d'une grande aide.
    Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
    Paul

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Perte du reseau sur noeud ESX
    Par zuperette dans le forum VMware
    Réponses: 2
    Dernier message: 18/02/2013, 10h58
  2. Parcourir et modifier noeuds xml
    Par snopims dans le forum ASP.NET
    Réponses: 1
    Dernier message: 08/12/2008, 12h00
  3. [VB2005 ]Parcourir tous les noeuds d'un treeview
    Par exclusif dans le forum Windows Forms
    Réponses: 1
    Dernier message: 28/07/2007, 22h38
  4. [C#] XML -> parcourir des noeuds un après l'autre ?
    Par TheParadoX dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/09/2006, 17h14
  5. Parcourir les noeuds d'un TreeView
    Par Andry dans le forum Composants VCL
    Réponses: 4
    Dernier message: 08/11/2005, 07h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo