TreeGadget - Personnalisation (Sans CallBack)

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

TreeGadget - Personnalisation (Sans CallBack)

Message par Le Soldat Inconnu »

Hauteur de ligne
Indentation
Couleur
etc ...

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 3.92
;
; Explication du programme :
; Changer des paramètres d'un TreeGadget (Indentation, Hauteur de ligne, Couleurs, etc ...)


Enumeration 
  #Tree_RechercheFichier
EndEnumeration

; Ouvre une fenêtre
If OpenWindow(0, 0, 0, 500, 250, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered, "Recherche fichiers") = 0 Or CreateGadgetList(WindowID()) = 0
  End
EndIf

TreeGadget(#Tree_RechercheFichier, 0, 0, 500, 200, #PB_Tree_AlwaysShowSelection)

; On rempli le TreeGadget
For n = 0 To 19
  AddGadgetItem(#Tree_RechercheFichier, n, Str(n) + " élement")
  
  If n = 3 Or n = 10 Or n = 11
    OpenTreeGadgetNode(#Tree_RechercheFichier) 
  EndIf
  If n = 6 Or n = 14 Or n = 18
    CloseTreeGadgetNode(#Tree_RechercheFichier)
  EndIf
Next

#TV_FIRST = $1100

; Indentation en pixel après chaque noeud
#TVM_GETINDENT = #TV_FIRST + 6
#TVM_SETINDENT = #TV_FIRST + 7
Indentation = SendMessage_(GadgetID(#Tree_RechercheFichier), #TVM_GETINDENT, 0, 0) ; On récupère la valeur de l'indentation
TextGadget(#PB_Any, 0, 200, 300, 15, "Indentation d'origine = " + Str(Indentation))
SendMessage_(GadgetID(#Tree_RechercheFichier), #TVM_SETINDENT, 40, 0) ; On change l'intendation à 40 px

; Hauteur des lignes
#TVM_GETITEMHEIGHT = #TV_FIRST + 28
#TVM_SETITEMHEIGHT = #TV_FIRST + 27
Hauteur = SendMessage_(GadgetID(#Tree_RechercheFichier), #TVM_GETITEMHEIGHT, 0, 0) ; On récupère la hauteur des lignes
TextGadget(#PB_Any, 0, 215, 300, 15, "Hauteur des lignes d'origine = " + Str(Hauteur))
SendMessage_(GadgetID(#Tree_RechercheFichier), #TVM_SETITEMHEIGHT, 25, 0) ; on la hauteur de lignes à 25 px

; Couleur du texte
#TVM_SETTEXTCOLOR = #TV_FIRST + 30
SendMessage_(GadgetID(#Tree_RechercheFichier), #TVM_SETTEXTCOLOR, 0, RGB(0, 0, 200)) ; Mettre -1 pour retrouver la couleur d'origine

; Couleur de fond
#TVM_SETBKCOLOR = #TV_FIRST + 29
SendMessage_(GadgetID(#Tree_RechercheFichier), #TVM_SETBKCOLOR, 0, RGB(255, 255, 226)) ; Mettre -1 pour retrouver la couleur d'origine

; On affiche l'élément 13
SetGadgetState(#Tree_RechercheFichier, 13)

; Insérer un marqueur
#TVM_SETINSERTMARK = #TV_FIRST + 26
SendMessage_(GadgetID(#Tree_RechercheFichier), #TVM_SETINSERTMARK, 1, GadgetItemID(#Tree_RechercheFichier, 14))
; Ici, on insère un marqueur après la ligne 14
; Pour insérer avant avant, mettre 0 à la place de 1
; Pour retirer le marqueur, remplacer GadgetItemID() par 0



Repeat
  Event = WaitWindowEvent()
  
Until Event = #PB_Event_CloseWindow
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]