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 11 Mar 2016 - 0:22 | |
| Ben non, Ygeronimi ! Cela voudrait dire que tu imposes un type d'arborescence, et tu perds en usage génral. Puis, après tout, remplir avec quoi ? Combien de noeuds de niveau 1 ? Et as-tu considéré que tu peux avoir plusieurs noeuds de niveau 0 (des racines) ? Eh oui, c'est possible !
Je te suggère de faire une SUB créant ta configuration initiale, selon tes besoins. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 11 Mar 2016 - 1:30 | |
| | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 11 Mar 2016 - 1:38 | |
| - Citation :
- il ne me semble pas avoir vu de fonction pour replier un noeud par programme
Exact ! Ca manque. Je vais le faire. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 11 Mar 2016 - 2:28 | |
| KGF.dll V6.09 du 11/03/2016
Nouveautés: - nouveau code 8 pour SetTreeViewOption
Modules modifiés: KGF.dll KGF.dll
La doc et les sources sont à jour.
Ce nouveau code permet de plier/déplier un noeud. Si le paramètre par%=-1, alors on agit sur le noeud actuellement sélectionné. Si par%>=0, alors on agit sur le noeud par%. Si act%=0, le noeud sera plié. Si act%=1, le noeud sera déplié. Si act%=2, on retourne l'état du noeud: 0=plié 1=déplié
| |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Ven 11 Mar 2016 - 7:33 | |
| Bonjour Klaus !
Je commence a refaire de nombreux tests sur GPP. Et je me rends compte que le principe des poignés avec les icônes étaient très pratique sur les objets DESIGNER. Pourrais tu STP si cela est possible bien entendu, regarder pour les ré-intégrer. Je sais que tu as eu beaucoup de difficulté a gérer tout ça. Si ce n'est pas possible ou trop compliqué laisse tomber Klaus...
Une autre question : (Je n'ai pas du tout regardé avant de te la poser : oops: ) Est il possible de faire une sélection multiple dans le TREEVIEW et mettant plusieurs objets avec une couleur de fond différente des autres (Peut etre en utilisant CTRL comme pour DESIGNER) ? En faite tu as compris je pense, je voudrais pouvoir faire l'équivalent du DESIGNER mais depuis le TREEVIEW !
Merci Klaus | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 11 Mar 2016 - 10:40 | |
| - Citation :
- le principe des poignés avec les icônes étaient très pratique sur les objets DESIGNER
Tu parles de l'image du curseur lorsque tu utilises le mot "icône", je suppose. Ben, oui et non. Il y a un problème technique, signalé maintes fois dans les forums, concernant l'image du curseur dont le changement n'est pris en compte que lors du MOUSE_UP et non lors du MOUSE_DOWN. Essaie faire un simple clic gauche sur l'endroit du cadre que tu veux tirer. Puis tire-le avec la souris. Tu verras la bonne représentation du curseur. A ce jour, je n'ai pas trouvé d'autre solution à ce problème. - Citation :
- Est il possible de faire une sélection multiple dans le TREEVIEW
Oui, je pourrais permettre la sélection multiple. Le problème est de savoir ensuite ce que l'on fait avec la notion de "noeud sélectionné". Techniquement, Delphi applique cette notion au dernier noeud sélectionné, même en cas de sélection multiple. Mais il y a un moyen de connaître la liste des noeuds sélectionnés. Est-ce que les actions demandées doivent s'effectuer sur tous les noeuds sélectionnés ? Dans certains cas, ce sera impossible (insertiion devant le noeud sélectioinné, par exemple). Il faudrait passer en revue l'ensemble des possibilités actuelles et définir l'effet en cas de sélection multiple. - Code:
-
plusieurs objets avec une couleur de fond différente des autres Je suppose que cette "couleur de fond différente" est supposée signaler l'état de sélection du ou des noeuds sélectionnés ? Oui, en cas de sélection multiple, tous les noeuds sélectionnés auront une couleur de fond différente, ainsi que l'affichage de leur icône qui passera à l'image "sélectionnée" si cela a été configuré pour le noeud en question. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 11 Mar 2016 - 11:58 | |
| Merci Klaus. Je vais recharger la dll tout de suite. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Ven 11 Mar 2016 - 13:05 | |
| - Citation :
- le changement n'est pris en compte que lors du MOUSE_UP
C'est exactement cela ! le fait de passer la souris sans cliquer sur le cadre DESIGNER. - S'il s'agit des angles on affiche le curseur en form de fleche dans le sens de l'angle. - S'il s'agit des bords on affiche le curseur en form de feuille. C'était comme ça au départ et c'était très bien. Si tu peux le remettre ca serait parfait ! Concernant la sélection multiple dans le TREEVIEW, tu as bien compris. Maintenant il me reste a voir ce que cela donnera si tu le met en place... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 11 Mar 2016 - 13:17 | |
| Klaus, Ou places tu cette fonction pour qu' elle fonctionne ? je créé mon "TreeView" depuis une arborescence récupérée en ligne de commande. donc, les dossiers et fichiers sont créés les uns derrières les autres depuis une liste. ex : dossier 1 ss dossier 1.1 fichier dossier 2 etc... que je place la fonction juste après la création des noeuds à replier ou que je fasse une boucle sur les indices récupérés à la fin de la création du TreeView les noeuds restent dépliés. juste après que le noeud à replier soit créé, voudrait dire que la création du noeud suivant modifie l' état du noeud à replier. Ce qui serait logique si on ajoute un fichier dans un dossier par exemple. mais en bout de création du TreeView... Si je dois placer la fonction dès la création du TreeView, l' opération est impossible vu que je ne connais pas encore les indices des noeuds à replier et encore moins mon programme. Quoi que, je pourrais éventuellement récupérer les numéro de ligne des dossiers dès la récup de l' arborescence en ligne de commande mais c' est un peu fastidieux. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 11 Mar 2016 - 14:02 | |
| @Ygeronimi: Chaque appel d'une fonction qui ajoute un noeud, retourne l'indice du noeud qui vient d'être créé. C'est le moment d'appeler la fonction avec le code 9 pour dire que ce noeud doit être replié (il est déplié par défaut). Si tu utilises LoadFolderTreeToTreeView, tout est déplié par défaut. Tu n'as d'autre choix que de parcourir les noeuds "fille" de la racine (niveau 1) et de les déclarer tous "repliés". @Minibug: - Citation :
- C'était comme ça au départ et c'était très bien. Si tu peux le remettre ca serait parfait !
C'est justement ce que je te dis: il y a un problème avec ça, et ce problème ne vient pas de moi. C'est plus profond, et je n'ai pas trouvé de solution jusqu'à maintenant. Fais ce que le t'ai conseillé: clique sur le coin ou le bord que tu veux tirer, puis tire-le ensuite. - Citation :
- Concernant la sélection multiple dans le TREEVIEW, tu as bien compris.
Bon, je vais réfléchir à la définition des actions en cas de multi-sélection. J'ai fait un test rapide et je constate que la multi-sélection en tant que telle se fait facilement et intuitivement. Le problème est d'adapter ensuite les traitements à la sélection multiple. Je vais y réfléchir. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 11 Mar 2016 - 15:19 | |
| J' ai mis à jour le zip sur mon webdav ( Panoramic_project.zip) Si tu as le temps de jeter un oeil... ...cela se passe entre la ligne 476 et 559, enfin, si le pb est là. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 12 Mar 2016 - 1:17 | |
| KGF.dll V6.10 du 12/03/2016Nouveautés: - possibilité de gérer la sélection multiple dans un TreeView (désactivée par défaut)Modules modifiés: KGF.dll KGF.dllLa doc et les sources sont à jour. Outre divers tests et sécurités internes, cette nouvelle possibilité se traduit par des modifications dans 3 fonctions: SetTreeViewOptions: ajout option 10: multi-sélection GetTreeViewInformation: ajout code 7: retourner le nombre de noeuds sélectionnés ajout code 8: retourner l'indice du noeud numéro "par%" (1,2,3,...) dans la liste des noeuds sélectionnés DeleteTreeViewNode:en cas de sélection multiple, tous les noeud sélectionnées seront supprimés. Autres fonctions:Là où il y a une ambiguïté, la fonction est rejetée avec un code erreur -1. C'est le cas de l'ajout d'un noeud enfant ou le remplacement du texte d'un noeud. Cela n'a pas de sens en cas de multi-sélection. Là où il n'y a pas d'incidence, la fonction reste inchangée. A titre d'exemple, voici le programme de démo qui charge une arborescence de dossiers. La multi-sélection est permise, par ctrl/clic et/ou shift/clic: - 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
width 0,800 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_call4("SetTreeViewOptions",TV%,1,10,0) 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$) caption 0, "niveau="+str$(ind%)+chr$(13)+chr$(10)+dossier$+"==>"+chemin$ return
| |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Sam 12 Mar 2016 - 9:23 | |
| Merci Pour ta réactivité Klaus. Je vais regarder çà ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 12 Mar 2016 - 12:03 | |
| KGF.dll V6.11 du 12/03/2016Nouveautés: - LoadFolderTreeToTreeView: ajout d'un paramètre "details%"Modules modifiés: KGF.dll KGF.dllLa doc et les sources sont à jour. Ce paramètre permet de charger également le détail de tous les fichiers, pas seulement les dossiers. Si ce paramètre est 0 (zéro), on ne charge que les dossiers. Si ce paramètre est <>0, on charge tout (attention: ça peut être long...) Voici le programme de démo adapté à cela. En ligne 24, le dernier paramètre peut être modifié pour changer le fonctionnement: - 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
width 0,800 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_call3("LoadFolderTreeToTreeView",TV%,adr(dir$),1) res% = dll_call4("SetTreeViewOptions",TV%,1,10,0) 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$) caption 0, "niveau="+str$(ind%)+" "+dossier$+"==>"+chemin$ return
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 12 Mar 2016 - 21:17 | |
| KGF.dll V6.12 du 12/03/2016Nouveautés: - LoadFolderTreeToTreeView: gestion d'icônes pour "fichier fermé/ouvert"Modules modifiés: KGF.dll KGF.dllLa doc et les sources sont à jour. La fonction SetTreeViewOptions a de nouveaux codes options 11 et 12 permettant de choisir les icônes pour fichiers fermés et/ou ouverts, dans le même esprit que pour les dossiers. Ceci bien sûr ne s'applique que si LoadFolderTreeToTreeView est appele avec detail%<>0. Voici un extrait de capture du programme de démo du post précédent: " /> (Exemple avec multi-sélection et mélange dossier/fichiers sélectionnés) | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 13 Mar 2016 - 13:51 | |
| Super Klaus,
je me mets à jour tout de suite !
Autre chose, aurais tu un exemple concret en stock de l' utilisation des fonctions sur un grid ?... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Dim 13 Mar 2016 - 14:38 | |
| Salut ygeronimi Si tu cherches a utiliser GridFunction, les fonctions sont actuellement impossible a utiliser. Klaus a expliqué il y a quelques temps déjà qu'il y a une incompatibilité avec la nouvelle version que Jack utilise pour développer Panoramic. Cela rends donc inopérante certaine fonctions comme GridFunction. Regardes dans ce fils de discussion, quelques pages auparavant j'avais déjà révélé le problème a Klaus. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 13 Mar 2016 - 20:03 | |
| Merci Minibug. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 13 Mar 2016 - 22:22 | |
| Oui, c'est exact. J'y travaille, mais c'est compliqué. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 15 Mar 2016 - 23:01 | |
| KGF.dll V6.13 du 15/03/2016Nouveautés: - ExecuteProgram: ajout d'un paramètre "borderless"Modules modifiés: KGF.dll KGF.dllLa doc et les sources sont à jour. Ce paramètre supplémentaire permet de lancer le programme en tant que fenêtre normale, ou alors sans aucune bordure. Cette méthode est utilisée dans le programme de démo qui suit. Ce programme permet de choisir un fichier Word (extension DOC ou RTF) et de l'afficher dans un panel comme contenant. Pour cela, on utilise l'utilitaire WordViewer, outil gratuit fourni par MicroSoft par ce lien: https://www.microsoft.com/fr-fr/download/details.aspx?id=4Voici le code (choisissez un RTF avec des images, graphiques etc - c'est spectaculaire !): - Code:
-
dim RE%, res%, f$, path$, param$, folder$, hnd%
dll_on "KGF.dll"
open_dialog 1 : filter 1,"Fichiers Word (*.doc,*.rtf)|*.doc;*.rtf" panel 2 : full_space 2 : ' l'outil WordViewer sera chargé dans ce panel !
f$ = file_name$(1) if f$="_" then terminate path$ = "C:\Program Files (x86)\Microsoft Office\OFFICE11\WORDVIEW.EXE" param$ = f$ folder$ = "" hnd% = DLL_call4("ExecuteProgram",adr(path$),adr(param$),adr(folder$),1) caption 0,str$(hnd%) res% = dll_call2("AttachWindowToWindow",hnd%,handle(2)) res% = DLL_call6("ChangeWindowSize",hnd%,3,0,0,height(2),width(2)) end
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 16 Mar 2016 - 0:14 | |
| Klaus... ...res% = dll_call1("Histogramme",adr(Histofile$)) pose apparemment aussi souci Bon, je vais me mettre à jour pour ta dernière création... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 16 Mar 2016 - 0:30 | |
| Ce programme: - Code:
-
dim res%, histo$ histo$ = "histogramme_ok.txt" dll_on "KGF.dll" res% = dll_call1("Histogramme",adr(histo$))
end avec ce fichier: - Code:
-
#Type=BAR #Séries=2 #Valeurs=8 #Données=1 17 28 5 59 43 12 36 49 #Données=2 32 35 38 23 15 10 21 33 #Titres Haut=Test de graphique Gauche=Ventes Bas=Mois Droite=Divers #Légendes séries Ordinateurs Téléphones #Légendes valeurs Janvier Février Mars Avril Mai Juin Juillet Août #Fin marche parfaitement et produit: Où est le problème ? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 16 Mar 2016 - 0:36 | |
| J' ai pris l' exemple de la doc pour tester. Je vais essayer avec celui là. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 16 Mar 2016 - 0:41 | |
| Ceci : <boxl> s' est glissé dans le code exemple de la doc. Je pense que le bug vient de là. Désolé, le copier/coller est traître de temps à autre... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 16 Mar 2016 - 0:42 | |
| Aurais-tu copié le tag <boxl>: - Code:
-
<boxl>#Type=LINE Je ne l'avais pas encore remarqué, mais ça doit être un changement de fonctionnement de l'outil de génération de l'aide, car il ne faut prendre bien sûr que ce qui se trouve entre <boxl>...</box>, à l'exclusion de ces tags ! | |
| | | 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
| |
| |
| |