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

C++Builder Discussion :

[Ttreeview] Autoscroll? [Trucs & Astuces]


Sujet :

C++Builder

  1. #1
    Membre exp�riment�
    Avatar de Superstivix
    Inscrit en
    D�cembre 2003
    Messages
    250
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2003
    Messages : 250
    Par d�faut [Ttreeview] Autoscroll?
    Bonjour � tous,

    Voila le probl�me, j'ai r�alis� un drag & drop sur un TTreeview, le probl�me est que lorsque je prends un noeud et que le pointeur de la souris d�passe le cadre sup�rieur de l'arbre il ne se passe, or je souhaiterais que les noeuds de l'arbre d�filent de mani�re � pouvoir afficher les noeuds sup�rieurs.

    J'ai cherch� une fonction du style autoscoll sans succ�s.
    J'esp�re que quelqu'un sait faire �a.

    Steve

  2. #2
    Invit�
    Invit�(e)
    Par d�faut Autoscroll sur un Treeview
    Bonjour,

    Effectivement, avoir un d�filement de l'arbre de vue quand on survole le haut ou le bas de l'arbre est int�ressant (comme dans l'explorateur Windows par exemple).

    J'ai d�j� fait des recherches sur ce probl�me ici :
    http://www.developpez.net/forums/vie...518&highlight=

    Je n'ais malheureusuement pas trouv� de solution satisfaisante.

    J'esp�re que tu trouveras...

    Bon courage !

  3. #3
    Invit�
    Invit�(e)
    Par d�faut TopItem
    Ah, j'ai vu dans un sujet pr�c�dent pour un TListView que l'on pouvait utiliser la propri�t� TopItem, je vais essayer...

  4. #4
    Membre exp�riment�
    Avatar de Superstivix
    Inscrit en
    D�cembre 2003
    Messages
    250
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2003
    Messages : 250
    Par d�faut Re: Autoscroll sur un Treeview
    Citation Envoy� par Kaji
    Bonjour,

    Effectivement, avoir un d�filement de l'arbre de vue quand on survole le haut ou le bas de l'arbre est int�ressant (comme dans l'explorateur Windows par exemple).

    J'ai d�j� fait des recherches sur ce probl�me ici :
    http://www.developpez.net/forums/vie...518&highlight=

    Je n'ais malheureusuement pas trouv� de solution satisfaisante.

    J'esp�re que tu trouveras...

    Bon courage !
    J'avais d�ja trouv� ce sujet mais malheureusement �a ne marche pas, j'essaye de l'adapter mais pour l'instant sans succ�s

    Si quelqu'un connait la solution je suis preneur, d'ici l� je continue les recherches

    Steve

  5. #5
    Membre exp�riment�
    Avatar de Superstivix
    Inscrit en
    D�cembre 2003
    Messages
    250
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2003
    Messages : 250
    Par d�faut
    Rebonjour � tous,

    voila j'ai r�solu mon probl�me, je donne le code pour ceux que �a peut int�resser.
    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
     
    TTreeView *Organigramme;
    ...
    if (State == dsDragMove && Y > 0 && Y < Organigramme->Height)
    {
      TTreeNode * NoeudTampon;
      TTreeNode * DernierVisible;
      NoeudTampon = Organigramme->GetNodeAt(X,Y);
      DernierVisible = Organigramme->GetNodeAt(X,Organigramme->Height - 10);
      if(NoeudTampon != NULL)
      {
        if( NoeudTampon == Organigramme->TopItem )
        {
           Organigramme->TopItem = Organigramme->TopItem->GetPrev();
           Organigramme->Repaint();
        }
        else if( NoeudTampon == DernierVisible && DernierVisible->GetNext() != NULL)
        {
          Organigramme->TopItem = Organigramme->TopItem->GetNext();
          Organigramme->Repaint();
        }
      }
    C'est assez simple je pense mais si quelqu'un a la moindre question qu'il n'h�site pas, ce code est � mettre dans l'�v�nement DragOver de l'arbre.

    A plus
    Steve

  6. #6
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 16
    Par d�faut
    Salut,

    une toute petite remarque : si jamais ton TreeView a une scrollbar horizontale (d'une �paisseur sup�rieure � 10), par exemple quand tu �tends plusieurs sous-noeuds, il ne scrollera plus !

    Il vaut mieux utiliser
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     DernierVisible = Organigramme->GetNodeAt(X,Organigramme->ClientHeight - 10);
    plut�t que
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    DernierVisible = Organigramme->GetNodeAt(X,Organigramme->Height - 10);
    Voili, j'avais dit que c'�tait un d�tail

    Merci en tout cas pour ton code, �a ma permis d'ajouter cette facilit� avant que le client ne me la demande !
    A++

  7. #7
    Membre exp�riment�
    Avatar de Superstivix
    Inscrit en
    D�cembre 2003
    Messages
    250
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2003
    Messages : 250
    Par d�faut
    Merci de ta pr�cision,
    je n'y avais pas pr�t� attention car dans les arbres que j'ai dans mon projet je ne peut pas avoir de ScrollBar horizontale, donc pas de souci pour moi.
    Par contre le code risque d'�tre r�utilis� pour d'autres projets et la configuration pourra �tre diff�rente donc mieux vaut pr�venir que gu�rir comme on dit.

    De rien pour le code
    Vraiment ravi que �a puisse servir � d'autres.
    Bon courage
    A plus
    Steve

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [TTreeView] Probl�me avec les pointeurs d'objet
    Par BlackWood dans le forum Composants VCL
    R�ponses: 2
    Dernier message: 02/07/2004, 14h31
  2. TTreeView
    Par lasconic dans le forum Composants VCL
    R�ponses: 4
    Dernier message: 19/08/2003, 11h12
  3. TTreeView: AutoExpand
    Par nmathon dans le forum Composants VCL
    R�ponses: 6
    Dernier message: 04/03/2003, 15h48
  4. TTreeView -> Comment ouvrir une unit� ?
    Par DaLove dans le forum C++Builder
    R�ponses: 2
    Dernier message: 08/12/2002, 11h30
  5. Couleur des noeuds ds 1 TTreeView
    Par vincent DD dans le forum Composants VCL
    R�ponses: 3
    Dernier message: 18/09/2002, 13h54

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