Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 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 | | Calendrier |
|
|
| KGF_dll - nouvelles versions | |
|
+8JL35 Marc papydall Jicehel Yannick pascal10000 Minibug Klaus 12 participants | |
Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 12 Fév 2016 - 11:12 | |
| KGF.dll V5.91 du 12/02/2016
Nouveautés: - TreeView: navigation avec les touches du clavier
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour.
Les touches suivantes son gérées: Début (Home) = aller à la racine du noeud actuel Flèche à gauche = aller au parent du noeud actuel Flèche en haut = aller à la soeur rpécédente du noeud actuel Flèche à droite= aller au premier enfant du noeud actuel Flèche en bas= aller à la soeur suivante du noeud actuel
Evidemment, toutes ces actions sont signalées comme "évènement". | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Ven 12 Fév 2016 - 12:34 | |
| Bonjour Klaus Concernant la barre d’icônes, je garde le fonctionnement que j'ai actuellement. J'ai plus de souplesse dans l'usage et le positionnement. Merci d'avoir regarder. désolé. Je suis en train de reprendre l'interface pour ajouter le TREE_VIEW mais comme je change et je simplifie pas mal de choses, je pense que l'intégration risque de prendre un certain temps. Mais le résultat devrait être a la hauteur. Je te tiens au courant de mes avancés et des éventuels obstacles. Encore merci. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 12 Fév 2016 - 13:00 | |
| Pour ma part, je suis en train de voir le problème de compatibilité des fichiers entre les objets ImageList et et les fichiers *.illb... EDIT Résultat: il n'y a pas de différence entre un fichier *.ilb créé par l'outil IcoLibrary et les fichiers sauvegarde des objets ImageList. En fait, IcoLibrary utilise un objet ImageList pour mémoriser les icônes. Et dans les deux cas, toutes les images dans le fichier doivent avoir les mêmes dimensions. Pour le fichier KGF.ilb (inclus dans KGF.dll pour les icônes par défaut), il s'agit d'icônes 16x16 pixels. Et mon programme test_ImageList.bas charge correctement KGF.ilb en reconnaissant la présence de 361 icônes, si l'on change la sub suivante (pour cause de filtrage du nom de fichier, seulement): - Code:
-
charger: ' ******** filter 31,"Fichier *.dat|*.dat" f$ = file_name$(31) if f$="_" then return ' ******** if lower$(right$(f$,4))<>".dat" then f$ = f$ + ".dat" if file_exists(f$)=0 message "N'existe pas" return end_if res% = dll_call2("LoadImageList",IL%,adr(f$)) message "Résultat: "+str$(res%) return Donc, tu peux créer un fichier par test_imagelist.bas en y ajoutant les icônes, puis le reprendre par IcoLibrary et vice-versa - pas de problème. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 12 Fév 2016 - 13:45 | |
| | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 12 Fév 2016 - 15:00 | |
| Et voici ce que j'ai: et après un clic sur le deuxième lien: Je ne vois pas où est le problème. Tu es sûr d'avoir la bonne version ? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 12 Fév 2016 - 15:40 | |
| Je pense que oui, une mauvaise version me donnerai un message violent de plantage lors des appels aux fonctions de la dll...
Je suis entrain de faire un grand nettoyage dur mon ordi, je suis revenu à une image disque du 07/02.
je vais voir mais cela reste une grande curiosité.
L' affichage était bon puis j' ai laissé en route Panoramic editor le temps de regarder un truc sur le web et après plus rien. c' est vraiment louche cette histoire. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 12 Fév 2016 - 16:09 | |
| Bon. J' ai chargé la version de ce matin de KGF.dll. Dans mon programme j' ai une variable "loc$" dim Loc$ : Loc$ = left$(dir_current$,3) Mon programme étant destiné à être sur une clé usb, cette variable est sensé me donner la racine de la clé avec sa lettre d' attribution. F:\ J' ai remis mon programme sur mon ordi en initialisant la dite variable de cette facon dim Loc$ : Loc$ = dir_current$ le premier noeud affichant cette racine txt$=loc$ Là ! ô miracle ! le treeview s' affiche correctement... mais zut ! loc$ n' est pas bon, il manque un "\" pour que le chemin vers l' imagelist soit bon. Qu' à celà ne tienne: dim Loc$ : Loc$ = dir_current$+"\" Mais là... le treeview n' apparait plus . Moralité, mefiez vous des "\"... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 12 Fév 2016 - 16:25 | |
| Bizarre. J'ai essayé avec - Code:
-
loc$ = dir_current$ + "" et je n'ai aucun problème. En activant les lignes message "a" et message "b", tu ne vois pas le TreeView ? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 12 Fév 2016 - 18:56 | |
| Je me demande si ma machine ne part pas en cacahuète... J' ai d' autres programmes qui ne se lancent plus et je ne sais pas pourquoi.
Je remettre mon ordi en état usine cela risque d' être long avant de me relire mais au moins je repartirai sur des bases saines.
Le coup du "\", celui là, c' est une première mais je ne m' étonne plus de rien. avec : pas d' affichage de l' objet treeview sans : affichage de l' objet treeview J' ai les messages donc cela doit se faire mais je n' ai pas l' affichage. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 13 Fév 2016 - 1:40 | |
| KGF.dll V5.92 du 12/02/2016Nouveautés: - TreeView: nouvelle fonction LoadFolderTreeToTreeViewModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Cette fonction charge un arbre de dossiers dans un objet TreeView, à partir d'un dossier de départ. Suivant l'importance de l'arborescence à analyser, cela peut prendre un certain temps, et donc le sablier s'affiche, lorsque le curseur est sur le TreeView. Voici une petite démo: - Code:
-
' test_LoadFolderTreeToTreeView.bas dim f$, res%, dir$, TV%, M1%, ind%, kgf$ kgf$ = "C:\Users\klausgunther\Documents\Mes projets\Mes projets Delphi\KGF\KGF.dll" M1% = 0 - 1
dll_on kgf$
open_dialog 1 f$ = file_name$(1) if f$="_" then terminate dir$ = file_extract_path$(f$)
TV% =dll_call3("CreateTreeViewEx",handle(0),1,0) res% = dll_call4("SetTreeViewOptions",TV%,0,1,0) res% = dll_call5("ResizeTreeView",TV%,M1%,M1%,M1%,M1%)
' ind% = dll_call3("AddTreeViewRootNode",TV%,adr(dir$),1) res% = dll_call2("LoadFolderTreeToTreeView",TV%,adr(dir$))
end
Chargez la variable dir$ avec le chemin que vous voulez, ou gardez le OPEN_DIALOG pour sélectionner un fichier quelconque - le programme en déduira le chemin et l'utilisera comme chemin de départ. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 13 Fév 2016 - 12:14 | |
| KGF.dll V5.93 du 13/02/2016Nouveautés: - LoadFolderTreeToTreeView: utilisation automatique de l'ocône 218 si le TreeView a été créé avec IL%=-1 - CreateTreeView: utilisation de la librairie d'icônes internes si IL%=-1Modules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Cette modification permet l'affichage automatique d'une icône "dossier" dans le TreeView utilisé par LoadFolderTreeToTreeView. Voici la démo appropriée. Elle montre aussi comment récupérer le nom du dossier cliqué et le chemin total: - Code:
-
' test_LoadFolderTreeToTreeView.bas
label change
dim f$, res%, dir$, TV%, M1%, ind%, kgf$, img$, s$, p%, chemin$, dossier$ kgf$ = "C:\Users\klausgunther\Documents\Mes projets\Mes projets Delphi\KGF\KGF.dll" M1% = 0 - 1
dll_on kgf$
open_dialog 1 edit 17 : hide 17 : on_change 17,change
f$ = file_name$(1) if f$="_" then terminate dir$ = file_extract_path$(f$) img$ = "KGF.ilb"
TV% =dll_call3("CreateTreeViewEx",handle(0),1,M1%) res% = dll_call4("SetTreeViewOptions",TV%,0,1,0) res% = dll_call5("ResizeTreeView",TV%,M1%,M1%,M1%,M1%)
' ind% = dll_call3("AddTreeViewRootNode",TV%,adr(dir$),1) res% = dll_call2("LoadFolderTreeToTreeView",TV%,adr(dir$)) res% = dll_call3("SetTreeViewEventReceiver",TV%,1,handle(17))
end
change: s$ = text$(17) if left$(s$,6)<>"click," then return s$ = mid$(s$,7,len(s$)) p% = instr(s$,",") ind% = val(left$(s$,p%-1)) s$ = mid$(s$,p%+1,len(s$)) dossier$ = s$ chemin$ = s$ while ind%>=0 s$ = string$(255," ") ind% = dll_call3("GetTreeViewInformation",TV%,3,adr(s$)) if ind%>=0 s$ = trim$(s$) ' if right$(s$,1)="\" then s$ = left$(s$,len(s$)-1) chemin$ = s$ + "\" + chemin$ res% = dll_call3("NavigateTreeView",TV%,3,0) end_if end_while message dossier$+"==>"+chemin$ return
Voici le résultat: | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 13 Fév 2016 - 14:35 | |
| KGF.dll V5.94 du 13/02/2016Nouveautés: - GetTreeViewInformation: ajout d'un code action 4Modules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Ce nouveau code permet de retourner le niveau du noeud sélectionné dans la valeur de retour, et le chemin complet du noeud depuis la racine, avec n "\" comme separateur. En voici la démo: - Code:
-
' test_LoadFolderTreeToTreeView.bas
label change
dim f$, res%, dir$, TV%, M1%, ind%, kgf$, img$, s$, p%, chemin$, dossier$ kgf$ = "C:\Users\klausgunther\Documents\Mes projets\Mes projets Delphi\KGF\KGF.dll" M1% = 0 - 1
dll_on kgf$
open_dialog 1 edit 17 : hide 17 : on_change 17,change
f$ = file_name$(1) if f$="_" then terminate dir$ = file_extract_path$(f$) img$ = "KGF.ilb"
TV% =dll_call3("CreateTreeViewEx",handle(0),1,M1%) res% = dll_call4("SetTreeViewOptions",TV%,0,1,0) res% = dll_call5("ResizeTreeView",TV%,M1%,M1%,M1%,M1%)
' ind% = dll_call3("AddTreeViewRootNode",TV%,adr(dir$),1) res% = dll_call2("LoadFolderTreeToTreeView",TV%,adr(dir$)) res% = dll_call3("SetTreeViewEventReceiver",TV%,1,handle(17))
end
change: s$ = text$(17) if left$(s$,6)<>"click," then return s$ = mid$(s$,7,len(s$)) p% = instr(s$,",") ind% = val(left$(s$,p%-1)) s$ = mid$(s$,p%+1,len(s$)) dossier$ = s$
chemin$ = string$(2000," ") ind% = dll_call3("GetTreeViewInformation",TV%,4,adr(chemin$)) chemin$ = trim$(chemin$) message "niveau="+str$(ind%)+chr$(13)+chr$(10)+dossier$+"==>"+chemin$ return
Et le résultat: Et ça marche aussi pour un disque complet (patience...). Voici un exemple pour mon WebDav, monté en disque réseau sur mon pc: | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 13 Fév 2016 - 19:57 | |
| Me revoilà, avec une machine "propre". Je viens d' essayer le dernier exemple que tu as posté : Cà Marche !!!!......ou plutôt, cela fonctionne. ( il ne me reste plus qu' à tester avec un programme de mon cru. ) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 14 Fév 2016 - 9:50 | |
| KGF.dll V5.95 du 14/02/2016Nouveautés: - GetTreeViewInformation et SetTreeViewOption: ajout d'un code fonction 5Modules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. L'objet TreeView sait maintenant gérer une donnée optionnelle de type chaîne de caractères, pour chaque noeud. Par défaut, cette chaine (nommée "données utilisateur" ou "user data') est vide. La fonction SetViewOption avec le code fonction 5 effectue ceci:act%=0 ==> effacer une éventuelle donnée utiliseur, pour le noeud sélectionné act%=1 ==> mettre le texte donné par par%=adr(txt$) dans la donnée utilisateur du noeud sélectionné act%=2 ==> retourner la longueur des données utilisateur du noeud sélectionné La fonction GetTreeViewInformation code 5 effectue ceci:si les données utilisateur ne sont pas vides, alors elles sont retournées dans la variable dont l'adresse est passée en par% Voici le programme de démo. Un des noeuds a une donnée utilisateur. Trouvez-le en cliquant sur les noeuds... - Code:
-
' test_treeview.bas
label close0, TV1_event
dim res%, TV1%, txt$, ind%, child%, img$, ClickFlag%, s$, p%, noeud%, PM% dim OldCell$, NewCell$ dim M1% : m1% = 0 - 1
dll_on "KGF.dll"
on_close 0,close0
edit 17 : hide 17 : on_change 17,TV1_event
img$ = "C:\Users\klausgunther\Documents\Mes projets\Mes projets Delphi\KGF\TestImageList.dat" if message_confirmation_yes_no("Optimiser le double-clic ?")=1 TV1% = dll_call3("CreateTreeViewEx",handle(0),1,adr(img$)) else TV1% = dll_call3("CreateTreeView",handle(0),1,adr(img$)) end_if if message_confirmation_yes_no("Libelles éditables ?")=1 res% = dll_call4("SetTreeViewOptions",TV1%,1,1,0) else res% = dll_call4("SetTreeViewOptions",TV1%,0,1,0) end_if
' res% = dll_call5("ResizeTreeView",TV1%,40,10,400,300) res% = dll_call5("ResizeTreeView",TV1%,M1%,M1%,M1%,M1%)
txt$ = "Racine" ind% = dll_call3("AddTreeViewRootNode",TV1%,adr(txt$),1) txt$ = "Enfant 1" child% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),2) txt$ = "Enfant 1a" res% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),3) res% = dll_call3("SelectTreeViewNode",TV1%,ind%,0) txt$ = "Enfant 2" res% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),4) res% = dll_call3("SelectTreeViewNode",TV1%,child%,0) txt$ = "Insertion devant enfant 1" if res%<=child% then child% = child% + 1 res% = dll_call4("InsertTreeViewNode",TV1%,0,adr(txt$),5) res% = dll_call3("SelectTreeViewNode",TV1%,child%,0) txt$ = "Insertion après enfant 1" res% = dll_call4("InsertTreeViewNode",TV1%,1,adr(txt$),4) ' res% = dll_call3("SelectTreeViewNode",TV1%,child%,0) ' res% = dll_call1("DeleteTreeViewNode",TV1%)
' res% = dll_call2("DeleteTreeView",TV1%,0)
res% = dll_call3("SetTreeViewEventReceiver",TV1%,1,handle(17))
width 0,width(0) + 300 memo 18 : left 18,610 : width 18,200 : height 18,400 : bar_both 18
message "On va changer la 5ème ligne..." newcell$ = "azerty" res% = dll_call4("ChangeTreeViewNodeText",TV1%,1,4,adr(NewCell$)) res% = dll_call3("SelectTreeViewNode",TV1%,4,0) s$ = "Ce noeud a été créé le "+date$+" à "+time$+" heures" res% = dll_call4("SetTreeViewOptions",TV1%,1,5,adr(s$)) item_add 18,"" res% = dll_call3("GetTreeViewInformation",TV1%,0,0) item_add 18,"Nombre total de noeud: "+str$(res%) res% = dll_call3("GetTreeViewInformation",TV1%,1,0) item_add 18,"Indice du noeud sélectionné: "+str$(res%) s$ = string$(255,"*") res% = dll_call3("GetTreeViewInformation",TV1%,2,adr(s$)) item_add 18,"texte du noeud sélectionné: "+trim$(s$) item_add 18,"" res% = dll_call4("SetTreeViewOptions",TV1%,1,2,255*256*256) : ' tout le texte en bleu res% = dll_call4("SetTreeViewOptions",TV1%,1,3,255) : ' texte de la ligne sélectionné en rouge res% = dll_call4("SetTreeViewOptions",TV1%,1,4,3) : ' texte de la ligne sélectionné en gras et italique res% = dll_call3("SelectTreeViewNode",TV1%,0,1)
end
close0: res% = dll_call2("DeleteTreeView",TV1%,0) ' res% = dll_call1("DeleteTVPopupMenu",PM%) return TV1_event: s$ = text$(17) item_add 18,"TV1: "+s$ res% = dll_call4("SetTreeViewOptions",TV1%,2,5,0) if res%>0 s$ = string$(res%," ") res% = dll_call3("GetTreeViewInformation",TV1%,5,adr(s$)) s$ = trim$(s$) if len(s$)>0 then item_add 18," "+s$ end_if
if left$(s$,8)="editing," s$ = mid$(s$,9,len(s$)) p% = instr(s$,",") noeud% = val(left$(s$,p%-1)) OldCell$ = mid$(s$,p%+1,len(s$)) ' item_add 18,"Old "+str$(noeud%)+": "+OldCell$ return end_if if left$(s$,7)="edited," : ' exemple: on interdit la saisie d'un "$" s$ = mid$(s$,8,len(s$)) p% = instr(s$,",") noeud% = val(left$(s$,p%-1)) NewCell$ = mid$(s$,p%+1,len(s$)) p% = instr(NewCell$,"$") while p%>0 NewCell$ = mid$(NewCell$,1,p%-1)+mid$(NewCell$,p%+1,len(NewCell$)) p% = instr(NewCell$,"$") end_while res% = dll_call4("ChangeTreeViewNodeText",TV1%,2,0,adr(NewCell$)) item_add 18,"New "+str$(noeud%)+": "+NewCell$ return end_if return
Cette "donnée utilisateur" peut servir à mémoriser, pour certains ou tous les noeuds, des informations complémentaires, non affichées. C'est juste une chaîne de caractères, non limitée et de format libre. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 14 Fév 2016 - 14:21 | |
| KGF.dll V5.96 du 14/02/2016Nouveautés: - SetTreeVewOptions: ajout code opération 6Modules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Ce code permet de supprimer/changer/retourner l'indice de l'icône du noeud sélectionné: opt 6: act%=0 => supprimer l'icône du noeud sélectionné act%=1 => remplacer l'icône du noeud sélectionné par l'icône numéro par% act%=2 => retourner le numéro actuel de l'icône du noeud sélectionné Voici le programme montrant une arborescence de dossiers. Un clic sur une ligne remplace l'icône de dossier fermé (219) par l'icône de dossier ouvert (196), et vice-versa: - Code:
-
' test_LoadFolderTreeToTreeView.bas
label change
dim f$, res%, dir$, TV%, M1%, ind%, kgf$, img$, s$, p%, chemin$, dossier$ kgf$ = "C:\Users\klausgunther\Documents\Mes projets\Mes projets Delphi\KGF\KGF.dll" M1% = 0 - 1
dll_on kgf$
open_dialog 1 edit 17 : hide 17 : on_change 17,change
f$ = file_name$(1) if f$="_" then terminate dir$ = file_extract_path$(f$) img$ = "KGF.ilb"
TV% =dll_call3("CreateTreeViewEx",handle(0),1,M1%) res% = dll_call4("SetTreeViewOptions",TV%,0,1,0) res% = dll_call5("ResizeTreeView",TV%,M1%,M1%,M1%,M1%)
' ind% = dll_call3("AddTreeViewRootNode",TV%,adr(dir$),1) res% = dll_call2("LoadFolderTreeToTreeView",TV%,adr(dir$)) res% = dll_call3("SetTreeViewEventReceiver",TV%,1,handle(17))
end
change: s$ = text$(17) if left$(s$,6)<>"click," then return s$ = mid$(s$,7,len(s$)) p% = instr(s$,",") ind% = val(left$(s$,p%-1)) s$ = mid$(s$,p%+1,len(s$)) dossier$ = s$
chemin$ = string$(2000," ") ind% = dll_call3("GetTreeViewInformation",TV%,4,adr(chemin$)) chemin$ = trim$(chemin$) message "niveau="+str$(ind%)+chr$(13)+chr$(10)+dossier$+"==>"+chemin$ ind% = dll_call4("SetTreeViewOptions",TV%,2,6,0) if ind%=219 ind% = dll_call4("SetTreeViewOptions",TV%,1,6,196) : ' icône "dossier ouvert" else ind% = dll_call4("SetTreeViewOptions",TV%,1,6,219) : ' icône "dossier fermé" end_if return
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 14 Fév 2016 - 17:16 | |
| KGF.dll V5.97 du 14/02/2016Nouveautés: - ajout d'un paramètre imgsel% aux fonctions AddTreeViewRootNode, AddTreeViewChildNode et InsertTreeViewNode - utilisation de l'icône 196 (dossier ouvert) dans LoadFolderTreeToTreeView pour un noeud sélectionnéModules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour. Vu l'intérêt de l'ajout d'une fonctionnalité importante, je me suis décidé à ajouter un paramètre à 3 fonctions déjà existantes - celles qui créent un noeud. Outre le paramètre img% qui donne l'indice de l'icône à ajouter, j'ai ajouté un paramètre imgsel% qui donne l'indice de l'icône si le noeud est sélectionné. Si l'on ne veut pas de changement d'icône, on passe tout simplement la même valeur pour img% et imgsel%. Voici la démo avec le chargement d'une arborescence de dossiers: - Code:
-
' test_LoadFolderTreeToTreeView.bas
label change
dim f$, res%, dir$, TV%, M1%, ind%, kgf$, img$, s$, p%, chemin$, dossier$ kgf$ = "C:\Users\klausgunther\Documents\Mes projets\Mes projets Delphi\KGF\KGF.dll" M1% = 0 - 1
dll_on kgf$
open_dialog 1 edit 17 : hide 17 : on_change 17,change
f$ = file_name$(1) if f$="_" then terminate dir$ = file_extract_path$(f$) img$ = "KGF.ilb"
TV% =dll_call3("CreateTreeViewEx",handle(0),1,M1%) res% = dll_call4("SetTreeViewOptions",TV%,0,1,0) res% = dll_call5("ResizeTreeView",TV%,M1%,M1%,M1%,M1%)
res% = dll_call2("LoadFolderTreeToTreeView",TV%,adr(dir$)) res% = dll_call3("SetTreeViewEventReceiver",TV%,1,handle(17))
end
change: s$ = text$(17) if left$(s$,6)<>"click," then return s$ = mid$(s$,7,len(s$)) p% = instr(s$,",") ind% = val(left$(s$,p%-1)) s$ = mid$(s$,p%+1,len(s$)) dossier$ = s$
chemin$ = string$(2000," ") ind% = dll_call3("GetTreeViewInformation",TV%,4,adr(chemin$)) chemin$ = trim$(chemin$) message "niveau="+str$(ind%)+chr$(13)+chr$(10)+dossier$+"==>"+chemin$ return
et voici le résultat: et voici le résultat: | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 14 Fév 2016 - 17:56 | |
| Encore un plus ! Je ne sais pas si tu as modifié la doc mais celle CreateTreeView est obsolète dans la version que j' ai. 5.94 du 13/06 | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 14 Fév 2016 - 18:11 | |
| Tu as raison, Ygeronomi. D'ici une demi-heure, ce sera corrigé. Puis, mets à jour - on est à la version V5.97 de ce jour...
EDIT
C'est fait - la doc est corrigée. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 14 Fév 2016 - 19:32 | |
| Je vais me mettre à jours. Mais tu codes plus vite que ton ombre... c' est fait. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Dim 14 Fév 2016 - 19:46 | |
| Bonsoir Klaus !
Je souhaite utiliser res% = DLL_call0("KGFupdate"), mais je ne comprends pas bien son fonctionnement.
J'ai récupéré une version KGF du 12.02 alors que j'avais celle de 16h43 aujourd'hui ! Pourrais tu m'expliquer. Merci | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 14 Fév 2016 - 19:56 | |
| Bon, avant tout, ne m' en veut pas de trop... mais je vais me la jouer chieur de service. Dans tes exemple, pour les icônes, tu te sers de la librairie interne de kgf. Dans cette librairie, le petit dossier fermé à le numéro 219. Si on veut se servir d' une librairie personnalisée, il faudra que nôtre icône ait le même numéro. J' ai voulu remplacé M1% par adr(imglist$) qui correspond à ma librairie ( basique que des couleurs) et là surprise, je n' ai plus rien qui s' affiche ( cette erreur mériterait peut être un petit message ). Comme je n' ai pas vu dans la fonction "LoadFolderTreeToTreeView" le choix du numéro d' image, je suppose qu' il se fait automatiquement vers ce numéro. Je ne sais pas si mon discours est très clair...
Dernière édition par ygeronimi le Dim 14 Fév 2016 - 20:02, édité 1 fois (Raison : correction pour papydall) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 14 Fév 2016 - 19:58 | |
| Tu as raison, Minibug ! Sur mes deux sites, je suis passé au fichier ZIP et non plus à la DLL directement. Et j'ai bêtement oublié d'adapter KGFupdate... vraiment désolé. Recharge par le lien dans la signature de mon post, et tu auras la dernière version. Je vais m'occuper de KGFupdate... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 14 Fév 2016 - 20:00 | |
| @Ygeronimi: Si, ton discours est très clair. Effectivement, je n'avais pas prévu ça. Et donc, je vais le corriger... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 15 Fév 2016 - 12:25 | |
| KGF.dll V5.98 du 14/02/2016
Nouveautés: - correction d'un bug dans KGFupdate
Modules modifiés: KGF.dll
La doc est inchangée. Les sources sont à jour.
Ce problème étant réglé, je vais traiter maintenant celui de LoadFolderTreeToTreeView, avec une librairie d'images personnelle...
Dernière édition par Klaus le Lun 15 Fév 2016 - 14:13, édité 1 fois | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 15 Fév 2016 - 14:13 | |
| KGF.dll V5.99 du 15/02/2016
Nouveautés: - SetTreeViewOptions: nouveaux codes option 7 et 8 - LoadFolderTreeToTreeView: permettre l'utilisation d'une bibliothèque d'icônes externe
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour.
Les codes 7 et 8 de SetTreeViewOptions permettent de changer les indices par défaut pour les icônes "dossier fermé" et "dossier ouvert", utilisés par LoadFolderTreeToTreeView. | |
| | | Contenu sponsorisé
| Sujet: Re: KGF_dll - nouvelles versions | |
| |
| | | | KGF_dll - nouvelles versions | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |