Petit problème de treeview avec imagelist [Résolu]

jace1975 84 Messages postés mardi 31 mai 2005Date d'inscription 12 octobre 2007 Dernière intervention - 3 nov. 2005 à 20:11 - Dernière réponse : jace1975 84 Messages postés mardi 31 mai 2005Date d'inscription 12 octobre 2007 Dernière intervention
- 5 nov. 2005 à 15:41
Bonjour à tous et bravo pour le site,

Voila mon problème :

J'ai dans une application un treeview qui recoit une liste d'image dans ses propriétés, du classique quoi.

J'ai quatre niveau dans ce treeview et chacun de ces niveaux recoit une image par défaut, sauf un, où tous les nodes recoivent comme imageindex -1 (je ne veux rien afficher)
.
le problème est que le texte est décalé car un espace de 16px est laissé pour afficher l'image alors que je ne souhaite rien afficher. résultat : les lignes qui lient les nodes peres aux nodes enfants de ce niveau débutent sur un emplacement vide.

j'ai essaye de passer par la méthode ONadvanceddrawitem mais le mieux que j'ai réussir à faire c'est d'afficher le texte au bonne endroit() mais en perdant les autres propriétés du node comme le focus,etc ...() .

Merci d'avance de vos réponses éclairées
Afficher la suite 

6 réponses

Répondre au sujet
cs_Loda 900 Messages postés vendredi 3 novembre 2000Date d'inscription 30 juillet 2009 Dernière intervention - 4 nov. 2005 à 14:44
+3
Utile
Je dis peut-être une connerie, mais si tu leur mettaient une image de ligne qui dessinerais le petit bout qui manque ?



ça serrait simple à faire... après faudrait voir le résultat bien sûr.




Loda
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Loda
jace1975 84 Messages postés mardi 31 mai 2005Date d'inscription 12 octobre 2007 Dernière intervention - 4 nov. 2005 à 18:25
+3
Utile
salut,

j'ai déjà essayer mais c'est trop lent, faut pas oublier que cet évènement est utilisé très très souvent.

J'ai eu un peu de temps pour creuser la question en reprenant l'exemple fourni dans l'aide delphi, à la rubrique OnCustomDrawItem.

quand on implémente ce code, tout marche sauf la procédure drawbutton
( qui est d'ailleurs la plus importante). si quelqu'un sait comment l'appeler , je prends !!!!!!

Une remarque que je me fais : c'est quand même bizarre que le code trouvé dans le fichier d'aide de delphi ne marche pas ?????? mais bon personne n'est à l'abri de l'erreur surtout moi.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jace1975
jace1975 84 Messages postés mardi 31 mai 2005Date d'inscription 12 octobre 2007 Dernière intervention - 5 nov. 2005 à 15:41
+3
Utile
j'ai trouvé la solution

pour cela il convient de regarder le projet dans demo\customdraw.

perso je trouve ca très mal foutu, mais on fera avec
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jace1975
cs_Loda 900 Messages postés vendredi 3 novembre 2000Date d'inscription 30 juillet 2009 Dernière intervention - 4 nov. 2005 à 21:27
0
Utile
a props de l'aide de Delphi: non c'est fréquent. regarde sur le site de
borland. y a peut être un bug repport sur la doc. (j'en trouvé un une
fois sur un exemple qui marchait pas)



en fait, je ne pensais pas dessiner dans ondraw le trait. je pensais de
mettre une image (à la palce de ne pas en mettre). mais cette image
serait un trait. donc l'espace n'as pas l'air vide et le trait est
continue.



mais peut-être que je n'ai pas compris ton problème !??!





Loda
Commenter la réponse de cs_Loda
jace1975 84 Messages postés mardi 31 mai 2005Date d'inscription 12 octobre 2007 Dernière intervention - 4 nov. 2005 à 23:09
0
Utile
ben en fait j'ai essayé mais dans les propriétés du treeview tu peux choisir qu'une imagelist, ce qui impose une taille commune pour toutes les images (par ex 16*16 ); j'ai essayé d'utiliser comme tu le proposes une image de largeur 1 mais ca prend trop de temps dans le drawitem de changer l'imagelist du treeview.
Commenter la réponse de jace1975
jace1975 84 Messages postés mardi 31 mai 2005Date d'inscription 12 octobre 2007 Dernière intervention - 4 nov. 2005 à 23:14
0
Utile
petit exemple avec la méthode de l'image à 1 :
Commenter la réponse de jace1975

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.