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

Composants VCL Delphi Discussion :

[Pointer]Treeview.Data


Sujet :

Composants VCL Delphi

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 99
    Points : 126
    Points
    126
    Par défaut [Pointer]Treeview.Data
    Salut,

    Je dispose d'un tree view que je remplis avec la méthode addObject... Je dispose donc sur chaque node d'un objet associé.

    Lors d'un double click je veux récupérer cet objet pour l'envoyer à une fonction avec la propriété TreeView.Selected.Data pour l'associer à un Dataset (L'objet associé est un dataset si,si)... Et là le message fatal tombe 'erreur de lecture à l'adresse....' je ne continue pas, vous le connaissez tous... Une partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    FDetail1.CreateFields(TVTable.Selected.Data);
    //puis :
     
    procedure TFDetail.CreateFields(DataSet: Pointer);
    begin
      DSTb.DataSet := DataSet;
      GridTable.DataSource := DSTb;
    end;
    Bon là je sais vous allez me dire ça va pas marcher (et je suis d'accord) cependant j'ai essayé plein de solutions de transtypage et compagnie mais ça ne marche pas... ...

    Une idée serait (avant mon décès prématuré par injection léthale de caféïne) d'une grande utilitée...

    Merci d'avance
    A+---------------> Nat <-------------------

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    le data d'un noeud est juste un pointeur il faut que tu précise vers quel type il pointe
    ca donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //defini un type pointeur vers ce que tu veux
    type
    tmonpointeur=^tdataset;  //avec un pointeur vers tdataset par ex
     
    //ensuite dans ton code tu mets
    FDetail1.CreateFields(tmonpointeur(TVTable.Selected.Data)^)
    //tu precise que data est 1 pointeur de type 'tmonpointeur' 
    //et on sait que 'tmonpointeur' pointe vers un dataset
     
     
    //oubli pas a la fin du prog de faire un dispose
    dispose(tvtable.Selected.Data);
    le '^' est là pour préciser que ce que tu donne en parametre n'est pas le pointeur (cad une adresse) mais ce vers koi pointe le pointeur (cad le dataset)

    Sinon pour ajouter ton noeud!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //declare la variable de type tmonpointeur
    var monpointeur : tmonpointeur;
     
    //ensuite tu fé un new
    new(monpointeur);
     
    //et tu l'affectes
    noeudfils:=tvtable.Items.AddChildObject(noeudpere,'le text',monpointeur);
    si tu as besoin d'autres choses sur les treeview hésite pas à me demander...



  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 69
    Points : 77
    Points
    77
    Par défaut
    je vois pas pourquoi il faudrait créer un type de pointeur, si il passe directement le dataset c'est bon aussi puisque tout objet est un pointeur en Delphi...
    Mes programmes : www.antp.be/software/fr/

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 99
    Points : 126
    Points
    126
    Par défaut
    Merci, je vais essayer ...

    Priez pour nous
    A+---------------> Nat <-------------------

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 99
    Points : 126
    Points
    126
    Par défaut
    C'est pas faux ça antp...
    A+---------------> Nat <-------------------

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    ouai exact...

    alors tu peux essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DSTb.DataSet :=Tdataset(DataSet);
    a moins que tu l'ai deja fé....


  7. #7
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 99
    Points : 126
    Points
    126
    Par défaut
    Déja fé mais c'est résolu... J'ai pris en compte que les objets étaient des pointeurs et je me suis arrangé pour attacher un objet différent à treeview,j'ai pu l'affecter directement par transtypage... Mais ta solution doit être valable, c'est comme ça qu'ils expliquent dans l'aide...
    A+---------------> Nat <-------------------

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 36
    Points : 37
    Points
    37
    1 = 3 ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/09/2011, 11h48
  2. Remplir un treeview avec hierarchical data template
    Par koyot3 dans le forum Windows Presentation Foundation
    Réponses: 11
    Dernier message: 30/12/2010, 15h48
  3. Lire la propriété Data du Treeview
    Par freud dans le forum EDI
    Réponses: 2
    Dernier message: 16/11/2009, 08h34
  4. probleme Data Treeview
    Par loleske dans le forum C++Builder
    Réponses: 5
    Dernier message: 28/02/2005, 09h23
  5. prb avec un treeview et data
    Par mikyfpc dans le forum C++Builder
    Réponses: 7
    Dernier message: 14/12/2004, 22h59

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