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

Delphi Discussion :

VirtualTreeView et Node ?


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Par défaut VirtualTreeView et Node ?
    Bonjour à tous,

    voici mon probleme, j'ai un VirtualTreeView nommé vtSearchs sur lequel j'ai apporté ma petite touche perso sur le OnDrawNode. SearchClass contient quelques propriétés, et SearchList contient des SearchClass

    Mais voilà alors que dans la proc UpdateVTSearchs ma variable SC existe bien (SC.Source est accessible, SC.Title aussi) je me retrouve avec le message La valeur de Node n'est pas utilisé dans la fonction UpdateVTSearchs.
    J'ai la même chose sur un autre prog et là je n'ai pas ce message.

    Le programme me plante une erreur sur la ligne :
    0: DrawText(Canvas, R, taLeftJustify, tlCenter, SC.Source);
    avec une violation d'access, SC n'est pas defini.

    Normalement, il devrait connaitre le Node mais là rien et pourtant dans mon autre prog cela fonctionne parfaitement et pas de message comme quoi la valeur de Node n'est pas utilisé.

    Une idée ? peut etre une chose à checker dans les options du projet ?

    Note : biensur ce qu'une partie de mon prog, j'initialise bien valeur et d'ailleurs
    comme je le dis plus haut dans ce texte, SC.Source existe bien et j'ai la bonne valeur.

    Note : si je remplace SC.Source par un texte du style 'Toto' cela fonctionne bien (dans 0: DrawText(Canvas, R, taLeftJustify, tlCenter, SC.Source); )

    Merci à tous pour votre aide.
    Bruno

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    procedure TMain.UpdateVTSearchs;
    var
      i : integer;
      Node: PVirtualNode;
      SC: TSearchClass;
      SL: TSearchList;
    begin
        SL:=TSearchList.Create;
        try
            SL := FData.Searchs;
     
            vtSearchs.NodeDataSize:=SizeOf(Pointer);
            vtSearchs.BeginUpdate;
            try
              vtSearchs.Clear;
              for i:=0 to SL.Count-1 do
              begin
                SC:=SL[i];
                Node:=vtSearchs.AddChild(nil, SC);
              end;
            finally
              vtSearchs.EndUpdate;
            end;
        finally
          SL.Free;
        end;
    end;
     
    procedure TMain.vtSearchsDrawNode(Sender: TBaseVirtualTree;  const PaintInfo: TVTPaintInfo);
    var
      SC : TSearchClass;
      R : TRect;
    begin
      with PaintInfo do
      begin
        R:=ContentRect;
     
        if Sender.Selected[Node] then
          Canvas.Font.Color:=clWhite
        else
          Canvas.Font.Color:=clBlack;
     
        Canvas.Brush.Style:=bsClear;
     
        SC:=GetPointerFromTree(Sender, Node);
        if Assigned(SC) then
        case Column of
          0: DrawText(Canvas, R, taLeftJustify, tlCenter, SC.Source);
          1: DrawText(Canvas, R, taLeftJustify, tlCenter, SC.Title);      
        end;
      end;
    end; {* proc .vtSearchsDrawNode *}
     
    procedure TMain.Button1Click(Sender: TObject);
    begin
        UpdateVTSearchs;
    end;

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 40
    Par défaut
    Juste pour etre sure sc.source est bien du type texte (string) ??

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Par défaut
    Bonjour Oceane,

    oui SC.Source est bien de type String.

    Amitiés,
    Bruno

Discussions similaires

  1. [VB6] Treeview: nombre de node?
    Par gg78 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/11/2004, 10h42
  2. Colorer le texte d'une node d'un treeView
    Par SBP dans le forum MFC
    Réponses: 3
    Dernier message: 28/10/2004, 19h34
  3. selection nodes
    Par luta_seb dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 28/09/2004, 16h47
  4. []générer et LIRE du xml avec vb: sélection d'un node
    Par chris21 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 19/09/2003, 13h14
  5. template match="node() mais pas text()"
    Par Manu_Just dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 26/03/2003, 10h52

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