Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1461 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  pourquoi la racine fait jamais comme les autres ? [TreeView] [resolu ]

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pourquoi la racine fait jamais comme les autres ? [TreeView] [resolu ]

n°815996
Miss Misti​c
Faites des bisoos
Posté le 05-08-2004 à 15:10:35  profilanswer
 

Bonjour,  
 
je dérive un TCustomTreeView afin de modifier l'affichage de mon treeview : un peu de couleur et des images pour faire plus joli. Le problème est que lorsque je sélectionne la racine, parfois l'image (à côté du noeud) s'affiche, parfois elle ne s'affiche pas. Je n'ai pas trouvé d'où celà pouvait venir...  
 
Quelqu'un a une idée ?
 
Merci d'avance.  
Miss
 
PS : Je mets le code correspondant parce que je sais pas si je suis claire... ;-)
 
----
  TKTreeView = class(TCustomTreeView)
  public
    constructor create(AOwner: TComponent); override;
    function  CustomDrawItem(Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage; var PaintImages: Boolean): Boolean; override;
    procedure CustomDrawItemV(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
    procedure setIcons;
  end;
 
//implementation de customdrawitem
  Canvas.Brush.Color := clWhite;
  Canvas.Font.Color := clBlack;
  Canvas.FillRect(Node.DisplayRect(True));
 
  if ( Node = Items.GetFirstNode ) or ( not Node.HasChildren ) then
    Node.StateIndex := -1
  else Node.StateIndex := 1;
 
  //affichage lorsque le noeud est sélectionné
  if (cdsSelected in state) then
  begin
    Canvas.Brush.Color := $00804000;
    Canvas.Font.Color := clWhite;
    Canvas.FillRect(Node.DisplayRect(False));
  end;
 
  Result := True;
 
 
EDIT : il suffisait de mettre PaintImages à True !
Bon, bah, maintenant je regarde comment augmenter la taille de chaque ligne/noeud.


Message édité par Miss Mistic le 05-08-2004 à 15:52:53
mood
Publicité
Posté le 05-08-2004 à 15:10:35  profilanswer
 

n°816065
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-08-2004 à 15:52:35  profilanswer
 

 if ( Node = Items.GetFirstNode ) or ( not Node.HasChildren ) then
    Node.StateIndex := -1
  else Node.StateIndex := 1;  
 
Il a quel but ce bout de code ? :??:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°816072
Miss Misti​c
Faites des bisoos
Posté le 05-08-2004 à 15:55:43  profilanswer
 

antp a écrit :

if ( Node = Items.GetFirstNode ) or ( not Node.HasChildren ) then
    Node.StateIndex := -1
  else Node.StateIndex := 1;  
 
Il a quel but ce bout de code ? :??:


 
Si le noeud n'a pas d'enfant alors je ne mets pas d'image d'état, sinon j'en mets un. Le test pour getFirstNode était venu s'ajouter suite à mon ptit souci d'affichage. Cependant, c résolu. (cf EDIT)
 
Par contre, tu ne saurais pas comment je peux agrandir la taille d'une ligne de treeview et ajouter une barre d'outils à mon treeview ? C'est peut-être beaucoup demandé  :D  
 
En tout cas, merci pour ton aide.
 

n°816076
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-08-2004 à 16:01:14  profilanswer
 

Comment ça augmenter la taille ?  
 
Pour la barre d'outil, bah c'est pas clair non plus, où est-ce que tu veux mettre une barre d'outils ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°816097
Miss Misti​c
Faites des bisoos
Posté le 05-08-2004 à 16:12:20  profilanswer
 

antp a écrit :

Comment ça augmenter la taille ?  
 
Pour la barre d'outil, bah c'est pas clair non plus, où est-ce que tu veux mettre une barre d'outils ?


 
En fait, j'aimerais qu'il y ait plus d'espace entre chaque noeud. Dans une listBox tu peux définir la taille de la ligne avec ItemHeight. Je recherche l'équivalent pour le treeview. Cependant, comme je n'ai pas trouvé, je suis en train d'essayer de le faire "à la main" (je bidouille Node.DisplayRect).
 
Pour ce qui est de la barre d'outils, en fait, c un peu comme dans ECLIPSE, où au dessus de l'arborescence de tes projets, tu trouves une petite barre d'outil pour ajouter un nouveau projet, créer un nouveau projet,... Tu vois le style ?  
 
J'ai essayé de dériver un TPanel qui contiendrait une Toolbar et un arbre. Mais, je n'ai pas encore réussie, je travaille pour le moment sur la largeur de la ligne du treeview... tout un programme...  :)

n°816132
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-08-2004 à 16:34:15  profilanswer
 

Non, je vois pas, t'as pas une capture d'écran ?
 
Il suffit de mettre le treeview et la toolbar dans un panel, non ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°816148
Miss Misti​c
Faites des bisoos
Posté le 05-08-2004 à 16:47:04  profilanswer
 

antp a écrit :

Non, je vois pas, t'as pas une capture d'écran ?
 
Il suffit de mettre le treeview et la toolbar dans un panel, non ?


 
Oui, je pense que ce sera le plus facile.  
 
Dans cette capture d'écran, http://ometer.com/eclipse-shots/eclipse-metacity.png, tu vois que Navigator est une sorte de toolbar/barre de titre d'un autre composant (que ce soit une liste ou un arbre). C'est ce que j'aurais aimé faire.

n°816153
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-08-2004 à 16:49:08  profilanswer
 

Tu mets ton Treeview et une Toolbar dans un panel et c'est bon


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°816169
Miss Misti​c
Faites des bisoos
Posté le 05-08-2004 à 17:20:35  profilanswer
 

antp a écrit :

Tu mets ton Treeview et une Toolbar dans un panel et c'est bon


 
ok. Je vais essayer comme çà.  
Merci antp !  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  pourquoi la racine fait jamais comme les autres ? [TreeView] [resolu ]

 

Sujets relatifs
[C++] Plantage d'une dll [résolu]Problème en visual basic - TabOrder --> Résolu
[Struts] Question sur struts-config.xml[Résolu][batch dos RESOLU] lire nombre dans fichier et l'exploiter pour calcul
[Excel][Résolu] pb de variable avec une feuilleProbleme boucle while[Résolu]
Concatener un $_POST et une variable [RESOLU][PHP] function + global, besoin d'aide... [RESOLU]
[Résolu] [ASPX] Compilation en ligne de commande et Crystal ReportsPerl :: probleme d'array et de length [resolu]
Plus de sujets relatifs à : pourquoi la racine fait jamais comme les autres ? [TreeView] [resolu ]


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR