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 | |
|
+12JL35 Oscaribout bignono Pedro pascal10000 silverman Jicehel papydall Minibug Marc Yannick Klaus 16 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 Sam 17 Fév 2018 - 4:20 | |
| Nouvelle version: KGF.dll V8.49 du 17/02/2018
Nouveautés: - QueryCollectionForKBDD: ajout de l'opérateur "\" signifiant "contient" dans le sens de recherche de chaîne de caractères
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour.
Ceci permet par exemple de rechercher toutes les fleurs ayant le texte "exposition ombre" ou "sol calcaire", par exemple, dans les commentaires. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 17 Fév 2018 - 15:01 | |
| Nouvelle version: KGF.dll V8.50 du 17/02/2018
Nouveautés: - SetIndexPositionKBDD: correction d'un bug
Modules modifiés: KGF.dll KGF.chm
La doc est inchangée. Les sources sont à jour. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 18 Fév 2018 - 15:32 | |
| Nouvelle version: KGF.dll V8.51 du 18/02/2018
Nouveautés: - Nouvelle fonction: GetfieldsKBDD - Opération "\" dans les QUERY des collections: ignorer la casse - QueryCollectionForKBDD: changement de paramètres - 3 hmemo deviennent 3 pstring - GetCollectionQueryKBDD: correction d'un bug, correction de la doc
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour.
La fonction GetfieldsKBDD permet de récupérer la liste de champs définis, avec leurs configuration.
La partie KBDD mûrit et se sécurise progressivement. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 18 Fév 2018 - 19:20 | |
| Nouvelle version: KGF.dll V8.52 du 18/02/2018
Nouveautés: - GetCollectionQueryKBDD: correction d'un autre bug, correction de la doc
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 19 Fév 2018 - 10:24 | |
| Nouvelle version: KGF.dll V8.53 du 19/02/2018
Nouveautés: - GetCollectionQueryKBDD: peut maiintenant recharger une collection à partir de ses critères existants
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour.
Il suffit de passer au moins un des trois paramètres de listes de champs, opérations ou valeurs comme 0 (zéro). La fonction réutilisera alors les critères déjà enregistrés pour la collection au lieu de les remplacer. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 19 Fév 2018 - 17:12 | |
| Nouvelle version: KGF.dll V8.54 du 19/02/2018
Nouveautés: - KBDD: gestiion du type de collection - CreateCollectionForKBDD: nouveau paramètre "type de collection" - nouvelles fonctions: GetCollectionTypeKBDD, SetCollectionTypeKBDD
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour.
Maintenant, une collection dans KBDD peut être de deux types: AND - les critères individuels sont liés par l'opération AND (par défaut) OR - les critères individuels sont liés par l'opération OR (nouveau) Ce type est défini lors de la création de la collection. Il peut être changé à tout moment par la fonction SetCollectionTypeKBDD.
Ainsi, en-dehors de critères du genre: Département=73 AND Activité=Boulanger on peut avoir maintenant Département=73 OR Département=48 OR Département=67 | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 20 Fév 2018 - 0:38 | |
| Nouvelle version: KGF.dll V8.55 du 20/02/2018
Nouveautés: - QueryCollectionForKBDD: nouvelle opération § signifiant "dans l'intervalle de"
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour.
On peut maintenant créer des critères du genre Total§300-4000 signifiant: la valeur du champ Total est comprise entre 300 et 4000
ou, pour prendre l'Ile de France: Département=75 Département=78 Département§91-95 avec une collection de type OR. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 21 Fév 2018 - 22:30 | |
| Nouvelle version: KGF.dll V8.56 du 21/02/2018
Nouveautés: - SqueezeKBDD: réécriture complète
Modules modifiés: KGF.dll
La doc est inchangée. Les sources sont à jour.
Suite aux évolutions de KBDD, et suite à la découverte de quelques bugs, il a été nécessaire de réécrire complètement la fonction SqueezeKBDD. C'est elle qui comprime la base pour éliminer physiquement tous les enregistrements supprimés pour récupérer la place et "tasser" ma base. Les index sont automatiquement reconstruits et les collections sont actualisées pour pointer sur les bons enregistrements.
Je conseille donc fermement à tous les utilisateurs de KBDD de télécharger cette version sans tarder. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 24 Fév 2018 - 19:15 | |
| Nouvelle version: KGF.dll V8.57 du 24/02/2018Nouveautés: - nouvel objet: 7ZipModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Ceci est une grande nouveauté ! On peut maintenant gérer un fichier ZIP, TAR, 7Z, et beaucoup d'autres, directement à partir de Panoramic ! Et non seulement en compression ou décompression de dossiers entiers (comme ARCHIVE_xxx de Panoramic), mais finement, fichier par fichier, dossier par dossier, en respectant la structure des dossiers en enregistrement et en restitution ! On peut aussi ajouter des fichiers ou dossiers à une archive existante, et, surtout, on peut utiliser les jokers * et ? pour choisir fnement les fichiers. C'est pas beau, ça ? Comme son nom l'indique, cet objet est en réalité une interface avec l'utilitaire 7Zip (freeware), et de ce fait, gère absolument tous les formats que 7Zip est capable de gérer, et il y en a beaucoup. J'ai cité les plus courants, mais jetez un coup d'oeil sur la doc et vous serez surpris ! Techniquement, les fonctions de KGF.dll établissent le lien avec 7z.exe qui est l'interface "ligne de commande" de 7Zip. Et ça marche aussi bien avec la version 32 bits qu'avec la version 64 bits. Si j'avais utilisé 7Zip.dll, j'aurais été limité à la version 32 bits car Panoramic étant en 32 bits, il ne peut appeler que des DLLs 32 bits. Faites l'essai avec l'outil de démonstration posté ci-après: 1. utilisez le bouton "Créer" pour initialiser le lien avec 7Zip - le titre de la form 0 indique "Ouvert" 2. utilisez le bouton "Fichier ZIP" - il ouvrira un sélecteur de fichiers (limité aux ZIP, mais c'est une commande FILTRE dans le source...) 3. choisissez un ZIP que vous connaissez et qui contient des choses multiples, et si possible plusieurs dossiers 4. utilisez le bouton "Lister" - quelques secondes d'attente, et la liste du contenu s'affiche dans le mémo à droite ! Pour créer un nouveau ZIP: 1. "Créer" 2. "Fichier ZIP" - donner le nom (et chemin) du nouveau ZIP ) créer 3. autant de fois ue nécessaire, utiliser "+ Fichier" et/ou "+Dossier" pour sélectionner des choses à archiver (y compris avec des * et ? si vous voulez, comme avec F*.b?? par exemple) 4. utilisez "Compresser" pour créer le fichier 5. et éventuellement, après la fin de l'opération, dutilisez "Lister" pour visualiser le contenu (le nom du fichier ZIP est resté en mémoire...) D'ailleurs, au lancement du programme, il teste automatiquement l'installation de 7Zip qui n'est pas forcément présent partout, et il signale le résultat. Voici le code: - Code:
-
' test_7ZIP.bas
label creer, supprimer, ajouterfichier, ajouterdossier, fichierzip label compresser, lister, extraireici, extrairedans
dim ZIP%, res%, f$, opt$, i%, s$
dll_on "KGF.dll"
caption 0,"test_ZZIP - ZIP fermé"
button 1 : caption 1,"Créer" : on_click 1,creer button 2 : caption 2,"Supprimer" : left 2,width(1) : on_click 2,supprimer
button 3 : caption 3,"+ Fichier" : top 3,height(1) : on_click 3,ajouterfichier button 4 : caption 4,"+ Dossier" : top 4,top(3) : left 4,width(3) : on_click 4,ajouterdossier button 5 : caption 5,"Fichier ZIP" : top 5,top(4) : left 5,left(4)+width(4) : on_click 5,fichierzip
button 6 : caption 6,"Compresser" : top 6,top(3)+height(3) : on_click 6,compresser button 7 : caption 7,"Lister" : top 7,top(3)+height(3) : left 7,left(6)+width(6) : on_click 7,lister button 8 : caption 8,"Extraire ici" : top 8,top(3)+height(3) : left 8,left(7)+width(7) : on_click 8,extraireici button 9 : caption 9,"Extraire ..." : top 9,top(3)+height(3) : left 9,left(8)+width(8) : on_click 9,extrairedans
check 21 : top 21,top(1) : left 21,350 : caption 21,"Nouveau fichier" check 22 : top 22,top(3) : left 22,350 : caption 22,"Remplacer" alpha 23 : top 23,top(6) : left 23,350 : caption 23,"Options 7Z:" edit 24 : top 24,top(23) : left 24,left(23)+70 : width 24,150
dlist 97 memo 98 : top 98,top(6)+30 : width 98,400 : height 98,300 : bar_both 98 open_dialog 99
res% = dll_call0("CheckInstallation7Zip") select res% case 2 item_add 97, "7Zip 64 bits est installé et accessible." case 1 item_add 97, "7Zip 32 bits est installé et accessible." case 0 item_add 97, "Erreur inattendue en recherche de 7Zip - vérifier l'installation." case -1 item_add 97, "7Zip 64 bits installé, mais PATH ne contient pas C:\program files\7-Zip !" case -2 item_add 97, "7Zip 32 bits installé, mais PATH ne contient pas C:\program files (86)\7-Zip !" case -3 item_add 97, "7Zip est introuvable." item_add 97, "Veuillez installer 7-Zip (freeware):" item_add 97, " Téléchargement: 32 bits: http://www.7-zip.org/a/7z1801.exe" item_add 97, " 64 bits; http://www.7-zip.org/a/7z1801-x64.exe" end_select for i%=1 to count(97) s$ = s$ + item_read$(97,i%) next i% clear 97 message s$ if res%=-4 then terminate end
creer: if ZIP%<>0 then return ZIP% = dll_call0("Create7Zip") if ZIP%=0 then message "Erreur en création" if ZIP%<>0 then caption 0,"test_ZZIP - ZIP ouvert" return supprimer: clear 98 ZIP% = dll_call1("Delete7Zip",ZIP%) caption 0,"test_ZZIP - ZIP fermé" return
ajouterfichier: clear 98 filter 99,"Tous les fichiers|*.*" f$ = file_name$(99) if f$="_" then return if file_exists(f$)=0 message "Fichier inexistant." return end_if opt$ = trim$(text$(24)) res% = dll_call3("AddFile7Zip",ZIP%,adr(f$),adr(opt$)) if res%<0 then message "Erreur en ajout de fichier." return
ajouterdossier: clear 98 f$ = string$(255," ") res% = DLL_call4("FolderSelect",0,adr(f$),0,1) if res%<>1 then return f$ = trim$(f$) if dir_exists(f$)=0 message "Dossier inexistant." return end_if opt$ = trim$(text$(24)) res% = dll_call3("AddFolder7Zip",ZIP%,adr(f$),adr(opt$)) if res%<0 then message "Erreur en ajout de dossier." return
fichierzip: clear 98 filter 99,"Fichier ZIP|*.zip" f$ = file_name$(99) if f$="-" then return if len(f$)<5 then return if lower$(right$(f$,4))<>".zip" message "Nom de fichier ZIP invalide." return end_if res% = dll_call2("CompressedFile7Zip",ZIP%,adr(f$)) if res%<0 then message "Erreur en sélection de fichier compressé." return
compresser: clear 98 res% = dll_call2("OverWrite7Zip",ZIP%,1-checked(21)) : ' mode 0=nouveau fichier ZIP res% = dll_call2("Compress7Zip",ZIP%,checked(22)) : ' remplacer le fichier if res%<0 message "Erreur en création de fichier compressé." else message "Terminé." end_if return lister: clear 98 opt$ = trim$(text$(24)) res% = dll_call3("List7Zip",ZIP%,adr(opt$),handle(98)) if res%<0 then message "Erreur en interrogeant un fichier compressé." return extraireici: clear 98 opt$ = trim$(text$(24)) res% = dll_call4("Extract7Zip",ZIP%,adr(f$),adr(opt$),0) if res%<0 then message "Erreur en décompressant un fichier compressé." return extrairedans: clear 98 f$ = string$(255," ") res% = DLL_call4("FolderSelect",0,adr(f$),0,1) if res%<>1 then return f$ = trim$(f$) if dir_exists(f$)=1 if message_confirmation_yes_no("Dossier existant. Utiliser ?")<>1 then return end_if opt$ = trim$(text$(24)) res% = dll_call4("Extract7Zip",ZIP%,adr(f$),adr(opt$),handle(98)) if res%<0 then message "Erreur en décompressant un fichier compressé." return
Vous voyez, c'est extrèmement court ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 25 Fév 2018 - 23:53 | |
| Nouvelle version: KGF.dll V8.58 du 26/02/2018
Nouveautés: - nouvelle fonction: GetListItemFromPoint
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour.
Cette fonction permet de trouver le numéro de ligne d'un objet LIST en fonction de coordonnées à l'intérieur de cet objet LIST. Exemple, après un clic droit, on utilise MOUSE_X_RIGHT_DOWN et MOUSE_Y_RIGHT_DOWN pour récupérer les coordonnées x et y de ce clic, et on peut ainsi savoir dans quelle ligne du LIST on a cliqué. Ou avec l'évèmenent ON_MOUSE_MOVE sur un LIST, on peut savoir quelles lignes sont parcourues par la souris, et réagir en fonction de cela. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 26 Fév 2018 - 1:28 | |
| Une autre petite démo pour montrer ce que l'on peut faire avec l'objet 7Zip - un mini-archiveur, pas si impuissant que ça ! Téléchargez la version de ce jour de KGF.dll, car le programme a besoin de la fonction GetActiveMemoLine. Note: le programme peut faire des extractions sélectives, soit par le menu après avoir cliqué sur un fichier, soit par le menu contextuel après un clic droit sur un des fichiers... Voici le code: - Code:
-
' PanoZip.bas
full_space 0 caption 0,"PanoZip"
constants() dll_on KGF$
labels() variables() menu() objets()
end
OuvrirArchive: OuvrirArchive() return NouvelleArchive: NouvelleArchive() return FermerArchive: FermerArchive() return Sortir: terminate
ClickListe: ClickListe() return TraitementExtraireIci: TraitementExtraire(0) return ExtraireIci: Extraire(0) return
TraitementExtraireDans: TraitementExtraire(1) return ExtraireDans: Extraire(1) return TraitementAjouterFichier: TraitementAjouterFichier() return TraitementAjouterDossier: TraitementAjouterDossier() return
sub constants() dim KGF$ : KGF$ = "KGF.dll" end_sub
sub labels() label OuvrirArchive, NouvelleArchive, FermerArchive, ClickListe label Sortir label TraitementExtraireIci, ExtraireIci, TraitementExtraireDans, ExtraireDans label TraitementAjouterFichier, TraitementAjouterDossier end_sub
sub variables() dim ZIP%, res%, no%, ZipNom$, index% dim no_open%, no_save%, no_liste%, no_memo% dim Debut%, Fin%, ColonneNom%, TypeClic% end_sub
sub menu() dim_local no1%, no2% no% = no% + 1 : main_menu no% : no1% = no% no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no% : caption no%,"Fichiers" no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Ouvrir archive" : on_click no%,OuvrirArchive no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Nouvelle archive" : on_click no%,NouvelleArchive no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Fermer archive" : on_click no%,FermerArchive no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"-" no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Sortir" : on_click no%,Sortir no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no% : caption no%,"Traitements" no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Extraire ici" : on_click no%,TraitementExtraireIci no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Extraire dans..." : on_click no%,TraitementExtraireDans no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Ajouter fichier" : on_click no%,TraitementAjouterFichier no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Ajouter dossier" : on_click no%,TraitementAjouterDossier no% = no% + 1 : main_menu_pop no% : no1% = no% no% = no% + 1 : sub_menu no% : parent no%,no1% : caption no%,"Extraire ici" : on_click no%,ExtraireIci no% = no% + 1 : sub_menu no% : parent no%,no1% : caption no%,"Extraire dans..." : on_click no%,ExtraireDans end_sub
sub objets() no% = no% + 1 : open_dialog no% : no_open% = no% no% = no% + 1 : save_dialog no% : no_save% = no% no% = no% + 1 : list no% : no_liste% = no% : full_space no% font_name no%,"Courier" : on_click no%,ClickListe no% = no% + 1 : memo no% : no_memo% = no% : hide no% : bar_both no% end_sub
sub AnalyserListe() dim_local i%, s$ Debut% = 0 Fin% = 0 ColonneNom% = 0 clear no_liste% for i%=1 to count(no_memo%) s$ = item_read$(no_memo%,i%) item_add no_liste%, s$ if ColonneNom%=0 ColonneNom% = instr(s$,"Name") end_if if left$(s$,5)="-----" if Debut%=0 Debut% = i% else if fin%=0 Fin% = i% end_if end_if end_if next i% res% = dll_call2("SelectListBoxItem",handle(no_liste%),Debut%+1) end_sub
sub OuvrirArchive() dim_local f$, options$ filter no_open%,"Fichers archive|*.7z;*.xz;*.zip;*.gz;*.gzip;*.tgz;*.bz2;*.bzip2;*.tbz2;*.tbz;*.tar;*.wim;*.swm" f$ = file_name$(no_open%) if f$="_" then exit_sub if file_exists(f$)=0 message "Non trouvé" exit_sub end_if if ZIP%<>0 ZIP% = dll_call1("Delete7Zip",ZIP%) ZipNom$ = "" clear no_liste% end_if ZIP% = dll_call0("Create7Zip") res% = dll_call2("CompressedFile7Zip",ZIP%,adr(f$)) options$ = "" res% = dll_call3("List7Zip",ZIP%,adr(options$),handle(no_memo%)) if res%<0 message "Fichier archive invalide" exit_sub end_if ZipNom$ = f$ AnalyserListe() end_sub
sub NouvelleArchive() dim_local f$, options$ filter no_save%,"Fichers archive|*.7z;*.xz;*.zip;*.gz;*.gzip;*.tgz;*.bz2;*.bzip2;*.tbz2;*.tbz;*.tar;*.wim;*.swm" f$ = file_name$(no_save%) if f$="_" then exit_sub if file_exists(f$)=1 if message_confirmation_yes_no("Existe déjà. Remplacer ?")<>1 then exit_sub end_if if ZIP%<>0 ZIP% = dll_call1("Delete7Zip",ZIP%) ZipNom$ = "" clear no_liste% end_if ZIP% = dll_call0("Create7Zip") res% = dll_call2("CompressedFile7Zip",ZIP%,adr(f$)) options$ = "" ZipNom$ = f$ res% = dll_call2("Compress7Zip",ZIP%,1) if res%<0 message "Erreur en création" else options$ = "" res% = dll_call3("List7Zip",ZIP%,adr(options$),handle(no_memo%)) if res%<0 message "Fichier archive invalide" exit_sub end_if end_if AnalyserListe() end_sub
sub FermerArchive() ZIP% = dll_call1("Delete7Zip",ZIP%) ZipNom$ = "" clear no_liste% debut% = 0 fin% = 0 end_sub
sub ClickListe() dim_local ind%, bad% bad% = 1 ind% = item_index(no_liste%) TypeClic% = 0 if ind%>Debut% if ind%<Fin% bad% = 0 ' traiter ici ce fichier TypeClic% = 1 index% = ind% message "Traiter: "+Mid$(item_read$(no_liste%,ind%),ColonneNom%,500) end_if end_if if bad%=1 then res% = dll_call2("SelectListBoxItem",handle(no_liste%),Debut%+1) end_sub
sub Extraire(act%) dim_local x%, y%, ind%, bad% x% = mouse_x_right_down(no_liste%) y% = mouse_y_right_down(no_liste%) bad% = 1 TypeClic% = 0 ind% = dll_call3("GetListItemFromPoint",handle(no_liste%),x%,y%) if ind%>Debut% if ind%<Fin% bad% = 0 ' extraire ici ce fichier res% = dll_call2("SelectListBoxItem",handle(no_liste%),ind%) TypeClic% = 2 index% = ind% TraitementExtraire(act%) end_if end_if if bad%=1 then res% = dll_call2("SelectListBoxItem",handle(no_liste%),Debut%+1) end_sub
sub TraitementExtraire(act%) dim_local options$, d$, dossier$, file$ file$ = Mid$(item_read$(no_liste%,index%),ColonneNom%,500) if act%=0 options$ = "-y" res% = dll_call4("Extract7Zip",ZIP%,0,adr(options$),handle(no_memo%)) if res%=0 message file$+" a été exporté ici" else message "Erreur en exportation ici" end_if else dossier$ = string$(255," ") res% = DLL_call4("FolderSelect",0,adr(dossier$),0,1) if res%=0 then exit_sub dossier$ = trim$(dossier$) res% = dll_call3("AddFile7Zip",ZIP%,adr(file$),adr(options$)) options$ = "-y" res% = dll_call4("Extract7Zip",ZIP%,adr(dossier$),adr(options$),handle(no_memo%)) if res%=0 message file$+" a été exporté dans"+chr$(13)+chr$(10)+dossier$ else message "Erreur en exportation" end_if end_if end_sub
sub TraitementAjouterFichier() dim_local f$, options$ filter no_open%,"Tous les fichiers (*.*)|*.*" f$ = file_name$(no_open%) if f$="_" then exit_sub if file_exists(f$)=0 message "Fichier inexistant." exit_sub end_if options$ = "" res% = dll_call3("AddFile7Zip",ZIP%,adr(f$),adr(options$)) if res%<0 message "Erreur en ajout de fichier" exit_sub end_if res% = dll_call2("Compress7Zip",ZIP%,1) if res%<0 message "Erreur en mise à jour de l'archive" exit_sub end_if options$ = "" res% = dll_call3("List7Zip",ZIP%,adr(options$),handle(no_memo%)) if res%<0 message "Fichier archive invalide" exit_sub end_if AnalyserListe() end_sub
sub TraitementAjouterDossier() dim_local f$, options$ f$ = string$(255," ") res% = DLL_call4("FolderSelect",0,adr(f$),0,1) if res%<>1 then exit_sub f$ = trim$(f$) if dir_exists(f$)=0 message "Dossier inexistant" exit_sub end_if options$ = "" res% = dll_call3("AddFolder7Zip",ZIP%,adr(f$),adr(options$)) if res%<0 message "Erreur en ajout de dossier" exit_sub end_if res% = dll_call2("Compress7Zip",ZIP%,1) if res%<0 message "Erreur en mise à jour de l'archive" exit_sub end_if options$ = "" res% = dll_call3("List7Zip",ZIP%,adr(options$),handle(no_memo%)) if res%<0 message "Fichier archive invalide" exit_sub end_if AnalyserListe() end_sub
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 27 Fév 2018 - 2:10 | |
| Nouvelle version: KGF.dll V8.59 du 26/02/2018Nouveautés: - nouvelle fonction: DeleteFrom7ZipModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. On peut maintenant supprimer un ou plusieurs fichiers, ou un ou plusieurs dossiers avec tout leur contenu, dans un fichier archive (ZIP, RAR, 7z, etc). Et voici mon mini-outil incluant cette fonction, aussi bien par le menu "Traitements" que par le menu contextuel (clic droit sur un fichier ou dossier la l'archive): - Code:
-
' PanoZip.bas
full_space 0 caption 0,"PanoZip"
constants() dll_on KGF$
labels() variables() menu() objets()
end
OuvrirArchive: OuvrirArchive() return NouvelleArchive: NouvelleArchive() return FermerArchive: FermerArchive() return Sortir: terminate
ClickListe: ClickListe() return TraitementExtraireIci: TraitementExtraire(0) return ExtraireIci: Extraire(0) return
Supprimer: Supprimer() return
TraitementExtraireDans: TraitementExtraire(1) return ExtraireDans: Extraire(1) return TraitementAjouterFichier: TraitementAjouterFichier() return TraitementAjouterDossier: TraitementAjouterDossier() return
TraitementSupprimer: TraitementSupprimer() return
sub constants() dim KGF$ : KGF$ = "KGF.dll" end_sub
sub labels() label OuvrirArchive, NouvelleArchive, FermerArchive, ClickListe label Sortir label TraitementExtraireIci, ExtraireIci, TraitementExtraireDans, ExtraireDans label TraitementAjouterFichier, TraitementAjouterDossier, TraitementSupprimer label Supprimer end_sub
sub variables() dim ZIP%, res%, no%, ZipNom$, index% dim no_open%, no_save%, no_liste%, no_memo% dim Debut%, Fin%, ColonneNom%, ColonneAttributs%, TypeClic%, EstDossier% end_sub
sub menu() dim_local no1%, no2% no% = no% + 1 : main_menu no% : no1% = no% no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no% : caption no%,"Fichiers" no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Ouvrir archive" : on_click no%,OuvrirArchive no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Nouvelle archive" : on_click no%,NouvelleArchive no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Fermer archive" : on_click no%,FermerArchive no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"-" no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Sortir" : on_click no%,Sortir no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no% : caption no%,"Traitements" no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Extraire ici" : on_click no%,TraitementExtraireIci no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Extraire dans..." : on_click no%,TraitementExtraireDans no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Ajouter fichier" : on_click no%,TraitementAjouterFichier no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Ajouter dossier" : on_click no%,TraitementAjouterDossier no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Supprimer" : on_click no%,TraitementSupprimer no% = no% + 1 : main_menu_pop no% : no1% = no% no% = no% + 1 : sub_menu no% : parent no%,no1% : caption no%,"Extraire ici" : on_click no%,ExtraireIci no% = no% + 1 : sub_menu no% : parent no%,no1% : caption no%,"Extraire dans..." : on_click no%,ExtraireDans no% = no% + 1 : sub_menu no% : parent no%,no1% : caption no%,"Supprimer" : on_click no%,Supprimer end_sub
sub objets() no% = no% + 1 : open_dialog no% : no_open% = no% no% = no% + 1 : save_dialog no% : no_save% = no% no% = no% + 1 : list no% : no_liste% = no% : full_space no% font_name no%,"Courier" : on_click no%,ClickListe no% = no% + 1 : memo no% : no_memo% = no% : hide no% : bar_both no% end_sub
sub AnalyserListe() dim_local i%, s$ Debut% = 0 Fin% = 0 ColonneNom% = 0 ColonneAttributs% = 0 clear no_liste% for i%=1 to count(no_memo%) s$ = item_read$(no_memo%,i%) item_add no_liste%, s$ if ColonneNom%=0 ColonneNom% = instr(s$,"Name") end_if if ColonneAttributs%<=0 ColonneAttributs% = instr(s$,"Attr") - 1 end_if if left$(s$,5)="-----" if Debut%=0 Debut% = i% else if fin%=0 Fin% = i% end_if end_if end_if next i% res% = dll_call2("SelectListBoxItem",handle(no_liste%),Debut%+1) end_sub
sub OuvrirArchive() dim_local f$, options$ filter no_open%,"Fichers archive|*.7z;*.xz;*.zip;*.gz;*.gzip;*.tgz;*.bz2;*.bzip2;*.tbz2;*.tbz;*.tar;*.wim;*.swm" f$ = file_name$(no_open%) if f$="_" then exit_sub if file_exists(f$)=0 message "Non trouvé" exit_sub end_if if ZIP%<>0 ZIP% = dll_call1("Delete7Zip",ZIP%) ZipNom$ = "" clear no_liste% end_if ZIP% = dll_call0("Create7Zip") res% = dll_call2("CompressedFile7Zip",ZIP%,adr(f$)) options$ = "" res% = dll_call3("List7Zip",ZIP%,adr(options$),handle(no_memo%)) if res%<0 message "Fichier archive invalide" exit_sub end_if ZipNom$ = f$ AnalyserListe() end_sub
sub NouvelleArchive() dim_local f$, options$ filter no_save%,"Fichers archive|*.7z;*.xz;*.zip;*.gz;*.gzip;*.tgz;*.bz2;*.bzip2;*.tbz2;*.tbz;*.tar;*.wim;*.swm" f$ = file_name$(no_save%) if f$="_" then exit_sub if file_exists(f$)=1 if message_confirmation_yes_no("Existe déjà. Remplacer ?")<>1 then exit_sub end_if if ZIP%<>0 ZIP% = dll_call1("Delete7Zip",ZIP%) ZipNom$ = "" clear no_liste% end_if ZIP% = dll_call0("Create7Zip") res% = dll_call2("CompressedFile7Zip",ZIP%,adr(f$)) options$ = "" ZipNom$ = f$ res% = dll_call2("Compress7Zip",ZIP%,1) if res%<0 message "Erreur en création" else options$ = "" res% = dll_call3("List7Zip",ZIP%,adr(options$),handle(no_memo%)) if res%<0 message "Fichier archive invalide" exit_sub end_if end_if AnalyserListe() end_sub
sub FermerArchive() ZIP% = dll_call1("Delete7Zip",ZIP%) ZipNom$ = "" clear no_liste% debut% = 0 fin% = 0 end_sub
sub ClickListe() dim_local ind%, bad% bad% = 1 ind% = item_index(no_liste%) TypeClic% = 0 if ind%>Debut% if ind%<Fin% bad% = 0 ' traiter ici ce fichier TypeClic% = 1 index% = ind% EstDossier% = 0 if mid$(item_read$(no_liste%,ind%),ColonneAttributs%,1)="D" then EstDossier% = 1 if EstDossier%=0 message "Traiter fichier: "+Mid$(item_read$(no_liste%,ind%),ColonneNom%,500) else message "Traiter dossier: "+Mid$(item_read$(no_liste%,ind%),ColonneNom%,500) end_if end_if end_if if bad%=1 then res% = dll_call2("SelectListBoxItem",handle(no_liste%),Debut%+1) end_sub
sub Extraire(act%) dim_local x%, y%, ind%, bad% x% = mouse_x_right_down(no_liste%) y% = mouse_y_right_down(no_liste%) bad% = 1 TypeClic% = 0 ind% = dll_call3("GetListItemFromPoint",handle(no_liste%),x%,y%) if ind%>Debut% if ind%<Fin% bad% = 0 ' extraire ici ce fichier res% = dll_call2("SelectListBoxItem",handle(no_liste%),ind%) TypeClic% = 2 index% = ind% TraitementExtraire(act%) end_if end_if if bad%=1 then res% = dll_call2("SelectListBoxItem",handle(no_liste%),Debut%+1) end_sub
sub TraitementExtraire(act%) dim_local options$, d$, dossier$, file$ file$ = Mid$(item_read$(no_liste%,index%),ColonneNom%,500) if act%=0 options$ = "-y" res% = dll_call4("Extract7Zip",ZIP%,0,adr(options$),handle(no_memo%)) if res%=0 message file$+" a été exporté ici" else message "Erreur en exportation ici" end_if else dossier$ = string$(255," ") res% = DLL_call4("FolderSelect",0,adr(dossier$),0,1) if res%=0 then exit_sub dossier$ = trim$(dossier$) res% = dll_call3("AddFile7Zip",ZIP%,adr(file$),adr(options$)) options$ = "-y" res% = dll_call4("Extract7Zip",ZIP%,adr(dossier$),adr(options$),handle(no_memo%)) if res%=0 message file$+" a été exporté dans"+chr$(13)+chr$(10)+dossier$ else message "Erreur en exportation" end_if end_if end_sub
sub TraitementAjouterFichier() dim_local f$, options$ filter no_open%,"Tous les fichiers (*.*)|*.*" f$ = file_name$(no_open%) if f$="_" then exit_sub if file_exists(f$)=0 message "Fichier inexistant." exit_sub end_if options$ = "" res% = dll_call3("AddFile7Zip",ZIP%,adr(f$),adr(options$)) if res%<0 message "Erreur en ajout de fichier" exit_sub end_if res% = dll_call2("Compress7Zip",ZIP%,1) if res%<0 message "Erreur en mise à jour de l'archive" exit_sub end_if options$ = "" res% = dll_call3("List7Zip",ZIP%,adr(options$),handle(no_memo%)) if res%<0 message "Fichier archive invalide" exit_sub end_if AnalyserListe() end_sub
sub TraitementAjouterDossier() dim_local f$, options$ f$ = string$(255," ") res% = DLL_call4("FolderSelect",0,adr(f$),0,1) if res%<>1 then exit_sub f$ = trim$(f$) if dir_exists(f$)=0 message "Dossier inexistant" exit_sub end_if options$ = "" res% = dll_call3("AddFolder7Zip",ZIP%,adr(f$),adr(options$)) if res%<0 message "Erreur en ajout de dossier" exit_sub end_if res% = dll_call2("Compress7Zip",ZIP%,1) if res%<0 message "Erreur en mise à jour de l'archive" exit_sub end_if options$ = "" res% = dll_call3("List7Zip",ZIP%,adr(options$),handle(no_memo%)) if res%<0 message "Fichier archive invalide" exit_sub end_if AnalyserListe() end_sub
sub TraitementSupprimer() dim_local options$, d$, dossier$, file$ EstDossier% = 0 if mid$(item_read$(no_liste%,index%),ColonneAttributs%,1)="D" then EstDossier% = 1 if EstDossier%=0 file$ = Mid$(item_read$(no_liste%,index%),ColonneNom%,500) else file$ = Mid$(item_read$(no_liste%,index%),ColonneNom%,500)+"/" end_if options$ = "" res% = dll_call3("AddFile7Zip",ZIP%,adr(file$),adr(options$)) if res%<0 message "Erreur en ajout de fichier" exit_sub end_if if EstDossier%=1 then options$ = "-r" res% = dll_call3("DeleteFrom7Zip",ZIP%,adr(options$),handle(no_memo%)) if res%=0 message file$+" a été supprimé" else message "Erreur en suppression" end_if
options$ = "" res% = dll_call3("List7Zip",ZIP%,adr(options$),handle(no_memo%)) if res%<0 message "Fichier archive invalide" exit_sub end_if AnalyserListe() end_sub
sub Supprimer() dim_local x%, y%, ind%, bad% x% = mouse_x_right_down(no_liste%) y% = mouse_y_right_down(no_liste%) bad% = 1 TypeClic% = 0 ind% = dll_call3("GetListItemFromPoint",handle(no_liste%),x%,y%) if ind%>Debut% if ind%<Fin% bad% = 0 ' extraire ici ce fichier res% = dll_call2("SelectListBoxItem",handle(no_liste%),ind%) TypeClic% = 2 index% = ind% TraitementSupprimer() end_if end_if if bad%=1 then res% = dll_call2("SelectListBoxItem",handle(no_liste%),Debut%+1) end_sub
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 27 Fév 2018 - 11:08 | |
| Nouvelle version: KGF.dll V8.60 du 27/02/2018Nouveautés: - nouvelle fonction: DeleteFolderFrom7Zip - DeleteFrom7Zip: renommée en DeleteFileFrom7ZipModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Le fonctionnement est plus cohérent comme ça. Et voici le mini-outil intégrant cette version, pour effacer un fichier ou un dossier, en choisissant automatiquement la bonne fonction: - Code:
-
' PanoZip.bas
full_space 0 caption 0,"PanoZip"
constants() dll_on KGF$
labels() variables() menu() objets()
end
OuvrirArchive: OuvrirArchive() return NouvelleArchive: NouvelleArchive() return FermerArchive: FermerArchive() return Sortir: terminate
ClickListe: ClickListe() return TraitementExtraireIci: TraitementExtraire(0) return ExtraireIci: Extraire(0) return
Supprimer: Supprimer() return
TraitementExtraireDans: TraitementExtraire(1) return ExtraireDans: Extraire(1) return TraitementAjouterFichier: TraitementAjouterFichier() return TraitementAjouterDossier: TraitementAjouterDossier() return
TraitementSupprimer: TraitementSupprimer() return
sub constants() dim KGF$ : KGF$ = "KGF.dll" end_sub
sub labels() label OuvrirArchive, NouvelleArchive, FermerArchive, ClickListe label Sortir label TraitementExtraireIci, ExtraireIci, TraitementExtraireDans, ExtraireDans label TraitementAjouterFichier, TraitementAjouterDossier, TraitementSupprimer label Supprimer end_sub
sub variables() dim ZIP%, res%, no%, ZipNom$, index% dim no_open%, no_save%, no_liste%, no_memo% dim Debut%, Fin%, ColonneNom%, ColonneAttributs%, TypeClic%, EstDossier% end_sub
sub menu() dim_local no1%, no2% no% = no% + 1 : main_menu no% : no1% = no% no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no% : caption no%,"Fichiers" no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Ouvrir archive" : on_click no%,OuvrirArchive no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Nouvelle archive" : on_click no%,NouvelleArchive no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Fermer archive" : on_click no%,FermerArchive no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"-" no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Sortir" : on_click no%,Sortir no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no% : caption no%,"Traitements" no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Extraire ici" : on_click no%,TraitementExtraireIci no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Extraire dans..." : on_click no%,TraitementExtraireDans no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Ajouter fichier" : on_click no%,TraitementAjouterFichier no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Ajouter dossier" : on_click no%,TraitementAjouterDossier no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Supprimer" : on_click no%,TraitementSupprimer no% = no% + 1 : main_menu_pop no% : no1% = no% no% = no% + 1 : sub_menu no% : parent no%,no1% : caption no%,"Extraire ici" : on_click no%,ExtraireIci no% = no% + 1 : sub_menu no% : parent no%,no1% : caption no%,"Extraire dans..." : on_click no%,ExtraireDans no% = no% + 1 : sub_menu no% : parent no%,no1% : caption no%,"Supprimer" : on_click no%,Supprimer end_sub
sub objets() no% = no% + 1 : open_dialog no% : no_open% = no% no% = no% + 1 : save_dialog no% : no_save% = no% no% = no% + 1 : list no% : no_liste% = no% : full_space no% font_name no%,"Courier" : on_click no%,ClickListe no% = no% + 1 : memo no% : no_memo% = no% : hide no% : bar_both no% end_sub
sub AnalyserListe() dim_local i%, s$ Debut% = 0 Fin% = 0 ColonneNom% = 0 ColonneAttributs% = 0 clear no_liste% for i%=1 to count(no_memo%) s$ = item_read$(no_memo%,i%) item_add no_liste%, s$ if ColonneNom%=0 ColonneNom% = instr(s$,"Name") end_if if ColonneAttributs%<=0 ColonneAttributs% = instr(s$,"Attr") - 1 end_if if left$(s$,5)="-----" if Debut%=0 Debut% = i% else if fin%=0 Fin% = i% end_if end_if end_if next i% res% = dll_call2("SelectListBoxItem",handle(no_liste%),Debut%+1) end_sub
sub OuvrirArchive() dim_local f$, options$ filter no_open%,"Fichers archive|*.7z;*.xz;*.zip;*.gz;*.gzip;*.tgz;*.bz2;*.bzip2;*.tbz2;*.tbz;*.tar;*.wim;*.swm" f$ = file_name$(no_open%) if f$="_" then exit_sub if file_exists(f$)=0 message "Non trouvé" exit_sub end_if if ZIP%<>0 ZIP% = dll_call1("Delete7Zip",ZIP%) ZipNom$ = "" clear no_liste% end_if ZIP% = dll_call0("Create7Zip") res% = dll_call2("CompressedFile7Zip",ZIP%,adr(f$)) options$ = "" res% = dll_call3("List7Zip",ZIP%,adr(options$),handle(no_memo%)) if res%<0 message "Fichier archive invalide" exit_sub end_if ZipNom$ = f$ AnalyserListe() end_sub
sub NouvelleArchive() dim_local f$, options$ filter no_save%,"Fichers archive|*.7z;*.xz;*.zip;*.gz;*.gzip;*.tgz;*.bz2;*.bzip2;*.tbz2;*.tbz;*.tar;*.wim;*.swm" f$ = file_name$(no_save%) if f$="_" then exit_sub if file_exists(f$)=1 if message_confirmation_yes_no("Existe déjà. Remplacer ?")<>1 then exit_sub end_if if ZIP%<>0 ZIP% = dll_call1("Delete7Zip",ZIP%) ZipNom$ = "" clear no_liste% end_if ZIP% = dll_call0("Create7Zip") res% = dll_call2("CompressedFile7Zip",ZIP%,adr(f$)) options$ = "" ZipNom$ = f$ res% = dll_call2("Compress7Zip",ZIP%,1) if res%<0 message "Erreur en création" else options$ = "" res% = dll_call3("List7Zip",ZIP%,adr(options$),handle(no_memo%)) if res%<0 message "Fichier archive invalide" exit_sub end_if end_if AnalyserListe() end_sub
sub FermerArchive() ZIP% = dll_call1("Delete7Zip",ZIP%) ZipNom$ = "" clear no_liste% debut% = 0 fin% = 0 end_sub
sub ClickListe() dim_local ind%, bad% bad% = 1 ind% = item_index(no_liste%) TypeClic% = 0 if ind%>Debut% if ind%<Fin% bad% = 0 ' traiter ici ce fichier TypeClic% = 1 index% = ind% EstDossier% = 0 if mid$(item_read$(no_liste%,ind%),ColonneAttributs%,1)="D" then EstDossier% = 1 if EstDossier%=0 message "Traiter fichier: "+Mid$(item_read$(no_liste%,ind%),ColonneNom%,500) else message "Traiter dossier: "+Mid$(item_read$(no_liste%,ind%),ColonneNom%,500) end_if end_if end_if if bad%=1 then res% = dll_call2("SelectListBoxItem",handle(no_liste%),Debut%+1) end_sub
sub Extraire(act%) dim_local x%, y%, ind%, bad% x% = mouse_x_right_down(no_liste%) y% = mouse_y_right_down(no_liste%) bad% = 1 TypeClic% = 0 ind% = dll_call3("GetListItemFromPoint",handle(no_liste%),x%,y%) if ind%>Debut% if ind%<Fin% bad% = 0 ' extraire ici ce fichier res% = dll_call2("SelectListBoxItem",handle(no_liste%),ind%) TypeClic% = 2 index% = ind% TraitementExtraire(act%) end_if end_if if bad%=1 then res% = dll_call2("SelectListBoxItem",handle(no_liste%),Debut%+1) end_sub
sub TraitementExtraire(act%) dim_local options$, d$, dossier$, file$ file$ = Mid$(item_read$(no_liste%,index%),ColonneNom%,500) if act%=0 options$ = "-y" res% = dll_call4("Extract7Zip",ZIP%,0,adr(options$),handle(no_memo%)) if res%=0 message file$+" a été exporté ici" else message "Erreur en exportation ici" end_if else dossier$ = string$(255," ") res% = DLL_call4("FolderSelect",0,adr(dossier$),0,1) if res%=0 then exit_sub dossier$ = trim$(dossier$) res% = dll_call3("AddFile7Zip",ZIP%,adr(file$),adr(options$)) options$ = "-y" res% = dll_call4("Extract7Zip",ZIP%,adr(dossier$),adr(options$),handle(no_memo%)) if res%=0 message file$+" a été exporté dans"+chr$(13)+chr$(10)+dossier$ else message "Erreur en exportation" end_if end_if end_sub
sub TraitementAjouterFichier() dim_local f$, options$ filter no_open%,"Tous les fichiers (*.*)|*.*" f$ = file_name$(no_open%) if f$="_" then exit_sub if file_exists(f$)=0 message "Fichier inexistant." exit_sub end_if options$ = "" res% = dll_call3("AddFile7Zip",ZIP%,adr(f$),adr(options$)) if res%<0 message "Erreur en ajout de fichier" exit_sub end_if res% = dll_call2("Compress7Zip",ZIP%,1) if res%<0 message "Erreur en mise à jour de l'archive" exit_sub end_if options$ = "" res% = dll_call3("List7Zip",ZIP%,adr(options$),handle(no_memo%)) if res%<0 message "Fichier archive invalide" exit_sub end_if AnalyserListe() end_sub
sub TraitementAjouterDossier() dim_local f$, options$ f$ = string$(255," ") res% = DLL_call4("FolderSelect",0,adr(f$),0,1) if res%<>1 then exit_sub f$ = trim$(f$) if dir_exists(f$)=0 message "Dossier inexistant" exit_sub end_if options$ = "" res% = dll_call3("AddFolder7Zip",ZIP%,adr(f$),adr(options$)) if res%<0 message "Erreur en ajout de dossier" exit_sub end_if res% = dll_call2("Compress7Zip",ZIP%,1) if res%<0 message "Erreur en mise à jour de l'archive" exit_sub end_if options$ = "" res% = dll_call3("List7Zip",ZIP%,adr(options$),handle(no_memo%)) if res%<0 message "Fichier archive invalide" exit_sub end_if AnalyserListe() end_sub
sub TraitementSupprimer() dim_local options$, d$, dossier$, file$ EstDossier% = 0 if mid$(item_read$(no_liste%,index%),ColonneAttributs%,1)="D" then EstDossier% = 1 file$ = mid$(item_read$(no_liste%,index%),ColonneNom%,500) options$ = "" res% = dll_call3("AddFile7Zip",ZIP%,adr(file$),adr(options$)) if res%<0 message "Erreur en ajout de fichier" exit_sub end_if if EstDossier%=1 res% = dll_call3("DeleteFolderFrom7Zip",ZIP%,adr(options$),handle(no_memo%)) else res% = dll_call3("DeleteFileFrom7Zip",ZIP%,adr(options$),handle(no_memo%)) end_if if res%=0 message file$+" a été supprimé" else message "Erreur en suppression" end_if
options$ = "" res% = dll_call3("List7Zip",ZIP%,adr(options$),handle(no_memo%)) if res%<0 message "Fichier archive invalide" exit_sub end_if AnalyserListe() end_sub
sub Supprimer() dim_local x%, y%, ind%, bad% x% = mouse_x_right_down(no_liste%) y% = mouse_y_right_down(no_liste%) bad% = 1 TypeClic% = 0 ind% = dll_call3("GetListItemFromPoint",handle(no_liste%),x%,y%) if ind%>Debut% if ind%<Fin% bad% = 0 ' extraire ici ce fichier res% = dll_call2("SelectListBoxItem",handle(no_liste%),ind%) TypeClic% = 2 index% = ind% TraitementSupprimer() end_if end_if if bad%=1 then res% = dll_call2("SelectListBoxItem",handle(no_liste%),Debut%+1) end_sub
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 5 Mar 2018 - 0:29 | |
| Nouvelle version: KGF.dll V8.61 du 05/03/2018Nouveautés: - nouvel objet: ScrollImage - nouvel objet: ScrollPanel - nouvel objet: IconComboBoxModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour, y compris la doc en ligne. Ceci est une mise à jour importante, apportant 3 objets puissants. Voici les 3 programmes de démo: ScrollImage: - Code:
-
' test_TScrollImage.bas
label creer, supprimer, charger, change, reduire, augmenter
dim res%, SI%, img$, no%, no_W%, no_H%, zoom% zoom% = 100
no% = no% + 1 : open_dialog no% : filter no%,"Images (BMP,JPG,GIF,PNG)|*.bmp;*.jpg;*.gif;*.png"
no% = no% + 1 : button no% : caption no%,"Créer" : on_click no%,creer no% = no% + 1 : button no% : left no%,width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimer no% = no% + 1 : button no% : left no%,left(no%-1)+width(no%-1) : caption no%,"Charger" : on_click no%,charger
no% = no% + 1 : button no% : left no%,left(no%-1)+width(no%-1) : caption no%,"Zoom -" : on_click no%,reduire no% = no% + 1 : button no% : left no%,left(no%-1)+width(no%-1) : caption no%,"Zoom +" : on_click no%,augmenter
no% = no% + 1 : scroll_bar no% : no_W% = no% : top no%,30 : left no%,50 : width no%,500 min no%,100 : max no%,1200 : position no%,450 : on_change no%,change no% = no% + 1 : scroll_bar no% : no_H% = no% : vertical no% : top no%,60 : left no%,10 : height no%,350 min no%,100 : max no%,1200 : position no%,300 : on_change no%,change dll_on "KGF.dll"
end
creer: if SI%=0 then SI% = dll_call1("CreateScrollImage",handle(0)) if SI%<>0 then res% = dll_call5("LocateScrollImage",SI%,50,60,position(no_W%),position(no_H%)) ' !!!!!!!!!! activer la ligne suivante pour avoir une image résultante de dimensions fixes: ' res% = dll_call4("FixedSizeScrollImage",SI%,1,1500,1000) return supprimer: SI% = dll_call1("DeleteScrollImage",SI%) return change: if SI%<>0 then res% = dll_call5("LocateScrollImage",SI%,50,60,position(no_W%),position(no_H%)) return charger: img$ = file_name$(1) if img$="_" then return if file_exists(img$)=0 then return res% = dll_call1("LoadAnyImageFile",adr(img$)) res% = dll_call1("LoadScrollImage",SI%) return
reduire: if SI%=0 then return if zoom%>25 then zoom% = zoom% - 25 res% = dll_call2("ZoomScrollImage",SI%,zoom%) return augmenter: if SI%=0 then return if zoom%<800 then zoom% = zoom% + 25 res% = dll_call2("ZoomScrollImage",SI%,zoom%) return
ScrollPanel: - Code:
-
' test_ScrollPanel.bas
dim SP1%, SP2%, SP3%, SP4% dim res%
full_space 0
dll_on "KGF.dll" SP1% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP1%,0,100,width_client(0),150) SP2% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP2%,0,250,width_client(0)/2,200) SP3% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP3%,width_client(0)/2,250,width_client(0)/2,200) SP4% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP4%,0,450,width_client(0),150)
memo 11 : bar_both 11 : width 11,300 : height 11,600 : font_names_load 11 res% = dll_call4("AttachToScrollPanel",SP1%,handle(11),0,0) memo 12 : bar_both 12 : width 12,300 : height 12,600 : font_names_load 12 res% = dll_call4("AttachToScrollPanel",SP1%,handle(12),400,100)
memo 21 : bar_both 21 : width 21,300 : height 21,600 : font_names_load 21 res% = dll_call4("AttachToScrollPanel",SP2%,handle(21),0,0)
memo 31 : bar_both 31 : width 31,300 : height 31,600 : font_names_load 31 res% = dll_call4("AttachToScrollPanel",SP3%,handle(31),0,0)
memo 41 : bar_both 41 : width 41,300 : height 41,600 : font_names_load 41 res% = dll_call4("AttachToScrollPanel",SP4%,handle(41),500,100)
end
IconComboBox: - Code:
-
' test_IconComboBox.bas
label creer, supprimer, UserEvent
dim res%, ICB%, IL%, no%, s$, WParam%, LParam%, index%, UserICB% dim ilb$ : ilb$ = "KGF.ilb"
dll_on "KGF.dll"
on_user_event UserEvent
no% = no% + 1 : button no% : caption no%,"Créer" : on_click no%,creer no% = no% + 1 : button no% : left no%,width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimer
IL% = dll_call2("CreateImageList",16,16) res% = dll_call2("LoadImageList",IL%,adr(ilb$)) end
UserEvent: if bin_and(user_event_wparam,hex("FF000000"))<>hex("09000000") then return if bin_and(user_event_wparam,hex("00FF0000"))<>hex("00010000") then return index% = bin_and(user_event_wparam,hex("0000FFFF")) UserICB% = user_event_lparam : ' ici, on a l'identifiant de l'objet ayant généré l'évènement ! s$ = string$(50," ") res% = dll_call3("GetItemOfIconComboBox",ICB%,index%,adr(s$)) s$ = trim$(s$) message "clic dans ligne "+str$(index%)+" = "+s$ return
creer: if ICB%<>0 then return ICB% = dll_call2("CreateIconComboBox",handle(0),IL%) res% = dll_call5("LocateIconComboBox",ICB%,20,50,200,0) s$ = "Déjeuner" res% = 17 res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,2,3,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),4,5,6,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),7,8,9,2) s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),10,11,12,2) s$ = "Plats" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),13,14,15,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),16,17,18,2) s$ = "Dîner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),19,20,21,0)
return
supprimer: ICB% = dll_call1("DeleteIconComboBox",ICB%) return
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 5 Mar 2018 - 21:45 | |
| Nouvelle version: KGF.dll V8.62 du 05/03/2018Nouveautés: - IconComboBox: réécriture des procédures internes - changement d'interface pour CreateIconComboBox - changement d'interface pour AddItemToIconComboBoxModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour, y compris la doc en ligne. Il n'y a plus qu'une seule icône par ligne. Mais l'affichage des icônes est maintenant optionnel, globalement pour toute la combo ou sélectivement par ligne. Idem pour l'indentation. De plus, ligne par ligne, on peut gérer une couleur de transparence pour l'icône. Voici le programme de démo, en l'état configuré pour utiliser une ILB avec des icônes de 32x32 pixels (disponible sur mon WebDav, dossier DLLs, sous-dossier IcoLibrary: - Code:
-
' test_IconComboBox.bas
label creer, supprimer, UserEvent
dim res%, ICB%, IL%, no%, s$, WParam%, LParam%, index%, UserICB% dim no_DoIcons%, no_DoIndent%, options%, transp% ' dim ilb$ : ilb$ = "KGF.ilb" dim ilb$ : ilb$ = "MonTest_32x32.ilb"
dll_on "KGF.dll"
on_user_event UserEvent
no% = no% + 1 : check no% : top no%,10 : no_DoIcons% = no% : caption no%,"Afficher icônes" no% = no% + 1 : check no% : top no%,10 : left no%,130 : no_DoIndent% = no% : caption no%,"Indentation"
no% = no% + 1 : button no% : top no%,40 : caption no%,"Créer" : on_click no%,creer no% = no% + 1 : button no% : top no%,40 : left no%,width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimer
' IL% = dll_call2("CreateImageList",16,16) IL% = dll_call2("CreateImageList",32,32) res% = dll_call2("LoadImageList",IL%,adr(ilb$)) end
UserEvent: if bin_and(user_event_wparam,hex("FF000000"))<>hex("09000000") then return if bin_and(user_event_wparam,hex("00FF0000"))<>hex("00010000") then return index% = bin_and(user_event_wparam,hex("0000FFFF")) UserICB% = user_event_lparam : ' ici, on a l'identifiant de l'objet ayant généré l'évènement ! s$ = string$(50," ") res% = dll_call3("GetItemOfIconComboBox",ICB%,index%,adr(s$)) s$ = trim$(s$) message "clic dans ligne "+str$(index%)+" = "+s$ return
creer: if ICB%<>0 then return options% = 0 if checked(no_DoIcons%)=1 then options% = options% + 1 if checked(no_DoIndent%)=1 then options% = options% + 2 ICB% = dll_call3("CreateIconComboBox",handle(0),IL%,options%) res% = dll_call5("LocateIconComboBox",ICB%,20,80,200,0) res% = 17 if 1=2 transp% = hex("FFFFFF") s$ = "Déjeuner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),4,1,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),7,1,0,2) s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),10,1,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),13,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),16,1,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),19,1,0,0) else s$ = "Déjeuner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),0,1,0,2) : ' pas d'icône ! s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,0) end_if
return
supprimer: ICB% = dll_call1("DeleteIconComboBox",ICB%) return
Et voici ce que ça donne: | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 6 Mar 2018 - 11:22 | |
| Nouvelle version: KGF.dll V8.63 du 06/03/2018Nouveautés: - nouvelles fonctions: GetIconComboBoxHandle et SetColorsForIconComboBox - nouvel objet: IconListBox (mêmes fonctions que IconComboBox - remplacer "Combo" par "List")Modules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour, y compris la doc en ligne. Et la démo: - Code:
-
' test_IconComboBox.bas
label creer, supprimer, UserEvent, creerL, supprimerL
dim res%, ICB%, IL%, ILB%, no%, s$, WParam%, LParam%, index%, UserICB%, UserILB% dim no_DoIcons%, no_DoIndent%, options%, transp% dim cFond% : cFond% = hex("FFFFFF") : ' blanc dim cFont% : cFont% = hex("000000") : ' noir dim cSelect% : cSelect% = hex("FF0000") : ' bleu
' dim ilb$ : ilb$ = "KGF.ilb" dim ilb$ : ilb$ = "MonTest_32x32.ilb"
dll_on "KGF.dll"
on_user_event UserEvent
no% = no% + 1 : check no% : top no%,10 : no_DoIcons% = no% : caption no%,"Afficher icônes" no% = no% + 1 : check no% : top no%,10 : left no%,130 : no_DoIndent% = no% : caption no%,"Indentation"
no% = no% + 1 : button no% : top no%,40 : caption no%,"Créer" : on_click no%,creer no% = no% + 1 : button no% : top no%,40 : left no%,width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimer
no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1)+100 : caption no%,"Créer" : on_click no%,creerL no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimerL
' IL% = dll_call2("CreateImageList",16,16) IL% = dll_call2("CreateImageList",32,32) res% = dll_call2("LoadImageList",IL%,adr(ilb$)) end
UserEvent: if bin_and(user_event_wparam,hex("FF000000"))=hex("09000000") : ' IconComboBox if bin_and(user_event_wparam,hex("00FF0000"))<>hex("00010000") then return index% = bin_and(user_event_wparam,hex("0000FFFF")) UserICB% = user_event_lparam : ' ici, on a l'identifiant de l'objet ayant généré l'évènement ! s$ = string$(50," ") res% = dll_call3("GetItemOfIconComboBox",ICB%,index%,adr(s$)) s$ = trim$(s$) message "clic dans IconComboBox ligne "+str$(index%)+" = "+s$ return end_if if bin_and(user_event_wparam,hex("FF000000"))=hex("0A000000") : ' IconListBox if bin_and(user_event_wparam,hex("00FF0000"))<>hex("00010000") then return index% = bin_and(user_event_wparam,hex("0000FFFF")) UserILB% = user_event_lparam : ' ici, on a l'identifiant de l'objet ayant généré l'évènement ! s$ = string$(50," ") res% = dll_call3("GetItemOfIconListBox",ILB%,index%,adr(s$)) s$ = trim$(s$) message "clic dans IconListBox ligne "+str$(index%)+" = "+s$ return end_if return
creer: if ICB%<>0 then return options% = 0 if checked(no_DoIcons%)=1 then options% = options% + 1 if checked(no_DoIndent%)=1 then options% = options% + 2 ICB% = dll_call3("CreateIconComboBox",handle(0),IL%,options%) res% = dll_call5("LocateIconComboBox",ICB%,20,80,200,0) if 1=2 transp% = hex("FFFFFF") s$ = "Déjeuner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),4,1,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),7,1,0,2) s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),10,1,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),13,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),16,1,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),19,1,0,0) else s$ = "Déjeuner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),0,1,0,2) : ' pas d'icône ! s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,0) end_if res% = dll_call4("SetColorsForIconComboBox",ILB%,cFond%,cFont%,cSelect%)
return
supprimer: ICB% = dll_call1("DeleteIconComboBox",ICB%) return
creerL: if ILB%<>0 then return options% = 0 if checked(no_DoIcons%)=1 then options% = options% + 1 if checked(no_DoIndent%)=1 then options% = options% + 2 ILB% = dll_call3("CreateIconListBox",handle(0),IL%,options%) res% = dll_call5("LocateIconListBox",ILB%,240,80,200,300) if 1=2 transp% = hex("FFFFFF") s$ = "Déjeuner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),4,1,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),7,1,0,2) s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),10,1,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),13,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),16,1,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),19,1,0,0) else s$ = "Déjeuner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),0,1,0,2) : ' pas d'icône ! s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,0) end_if
res% = dll_call4("SetColorsForIconListBox",ILB%,cFond%,cFont%,cSelect%) return supprimerL: ILB% = dll_call1("DeleteIconListBox",ILB%) return
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 7 Mar 2018 - 21:48 | |
| Nouvelle version: KGF.dll V8.65 du 07/03/2018 Nouveautés: - Nouvelles fonctions: OptionsForIconListBox et GetAllSelectedItemsFromIconListBox - Nouvelles fonctions: ChangeElementIconInIconComboBox et ChangeElementIconInIconListBox - Nouvelles fonctions: ChangeElementTextInIconComboBox et ChangeElementTextInIconListBox Modules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour, y compris la doc en ligne. Programme de démo: - Code:
-
' test_IconComboBox.bas
label creer, supprimer, UserEvent, creerL, supprimerL, selectionL, changeL3
dim res%, ICB%, IL%, ILB%, no%, s$, WParam%, LParam%, index%, UserICB%, UserILB% dim no_DoIcons%, no_DoIndent%, options%, no_memo% dim cFond% : cFond% = hex("FFFFFF") : ' blanc dim cFont% : cFont% = hex("000000") : ' noir dim cSelect% : cSelect% = hex("FF0000") : ' bleu
' dim ilb$ : ilb$ = "KGF.ilb" dim ilb$ : ilb$ = "MonTest_32x32.ilb"
dll_on "KGF.dll"
on_user_event UserEvent
no% = no% + 1 : memo no% : no_memo% = no% : hide no% : bar_both no%
no% = no% + 1 : check no% : top no%,10 : no_DoIcons% = no% : caption no%,"Afficher icônes" no% = no% + 1 : check no% : top no%,10 : left no%,130 : no_DoIndent% = no% : caption no%,"Indentation"
no% = no% + 1 : button no% : top no%,40 : caption no%,"Créer" : on_click no%,creer no% = no% + 1 : button no% : top no%,40 : left no%,width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimer
no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1)+100 : caption no%,"Créer" : on_click no%,creerL no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimerL no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Sélection" : on_click no%,selectionL no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Change ligne 3" : on_click no%,changeL3
' IL% = dll_call2("CreateImageList",16,16) IL% = dll_call2("CreateImageList",32,32) res% = dll_call2("LoadImageList",IL%,adr(ilb$)) end
UserEvent: if bin_and(user_event_wparam,hex("FF000000"))=hex("09000000") : ' IconComboBox if bin_and(user_event_wparam,hex("00FF0000"))<>hex("00010000") then return index% = bin_and(user_event_wparam,hex("0000FFFF")) UserICB% = user_event_lparam : ' ici, on a l'identifiant de l'objet ayant généré l'évènement ! s$ = string$(50," ") res% = dll_call3("GetItemOfIconComboBox",ICB%,index%,adr(s$)) s$ = trim$(s$) message "clic dans IconComboBox ligne "+str$(index%)+" = "+s$ return end_if if bin_and(user_event_wparam,hex("FF000000"))=hex("0A000000") : ' IconListBox if bin_and(user_event_wparam,hex("00FF0000"))<>hex("00010000") then return index% = bin_and(user_event_wparam,hex("0000FFFF")) UserILB% = user_event_lparam : ' ici, on a l'identifiant de l'objet ayant généré l'évènement ! s$ = string$(50," ") res% = dll_call3("GetItemOfIconListBox",ILB%,index%,adr(s$)) s$ = trim$(s$) message "clic dans IconListBox ligne "+str$(index%)+" = "+s$ return end_if return
creer: if ICB%<>0 then return options% = 0 if checked(no_DoIcons%)=1 then options% = options% + 1 if checked(no_DoIndent%)=1 then options% = options% + 2 ICB% = dll_call3("CreateIconComboBox",handle(0),IL%,options%) res% = dll_call5("LocateIconComboBox",ICB%,20,80,200,0) if 1=2 transp% = hex("FFFFFF") s$ = "Déjeuner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),4,1,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),7,1,0,2) s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),10,1,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),13,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),16,1,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),19,1,0,0) else s$ = "Déjeuner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),0,1,0,2) : ' pas d'icône ! s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,0) end_if res% = dll_call4("SetColorsForIconComboBox",ICB%,cFond%,cFont%,cSelect%)
return
supprimer: ICB% = dll_call1("DeleteIconComboBox",ICB%) return
creerL: if ILB%<>0 then return options% = 0 if checked(no_DoIcons%)=1 then options% = options% + 1 if checked(no_DoIndent%)=1 then options% = options% + 2 ILB% = dll_call3("CreateIconListBox",handle(0),IL%,options%) res% = dll_call5("LocateIconListBox",ILB%,240,80,200,300) if 1=2 transp% = hex("FFFFFF") s$ = "Déjeuner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),4,1,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),7,1,0,2) s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),10,1,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),13,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),16,1,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),19,1,0,0) else s$ = "Déjeuner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),0,1,0,2) : ' pas d'icône ! s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,0) end_if
res% = dll_call4("SetColorsForIconListBox",ILB%,cFond%,cFont%,cSelect%) res% = dll_call2("OptionsForIconListBox",ILB%,1) return supprimerL: ILB% = dll_call1("DeleteIconListBox",ILB%) return
selectionL: res% = dll_call2("GetAllSelectedItemsFromIconListBox",ILB%,handle(no_memo%)) message text$(no_memo%) return changeL3: res% = dll_call6("ChangeElementIconInIconListBox",ILB%,3,1,0,0,2) s$ = "Oeuf dur - mayonnaise" res% = dll_call3("ChangeElementTextInIconListBox",ILB%,3,adr(s$)) return
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 14 Mar 2018 - 22:52 | |
| Nouvelle version: KGF.dll V8.66 du 14/03/2018
Nouveautés: - IconListBox: correction d'un bug avec confusion entre sélection simple et multiple
Modules modifiés: KGF.dll
La doc est inchangée. Les sources sont à jour, y compris la doc en ligne. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 16 Mar 2018 - 1:59 | |
| Nouvelle version: KGF.dll V8.67 du 14/03/2018
Nouveautés: - Nouvelles fonctions: ClearIconComboBox et ClearIconListBox - création de la documentation de la fonction existante SetMainFormHandle (Fonctions diverses)
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 22 Mar 2018 - 23:57 | |
| Nouvelle version: KGF.dll V8.68 du 22/03/2018Nouveautés: - Nouvelle fonctions: SetTranslucentModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Cette fonction utilise une couleur de la form 0 comme couleur de trannsparence. Cette couleur "disparaît" et laisse transparaître ce qu'il y a en-dessous, en appliquant unh dégré de transparence entre 0 (totalement transparent) et 255 (totalement opaque). Tout ce qui n'est pas de cette couleur sera affiché normalement. Voici une démo: - Code:
-
label sortir dim res%
border_hide 0 full_space 0 color 0,255,255,255 : ' <========= couleur de transparence, à choisir librement !
font_size 0,24 : font_bold 0 print_locate 300,300 print "Panoramic"
dll_on "KGF.dll" ' 2ème paramètre: couleur de transparence hex("BBGGRR") ' 3ème paramètre: 0 (transparent) ... 255 (opaque) res% = dll_call3("SetTranslucent",handle(0),hex("FFFFFF"),0) res% = dll_call2("WindowTopMost",handle(0),1) height 0,height(0) - 40 button 1 : caption 1,"Sortir" : on_click 1,sortir : width 1,150 : height 1,30
end sortir: terminate
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 2 Avr 2018 - 14:34 | |
| J'ai modifié la fonction GetObjectTree (documentée dans les fonctions diverses). elle donne maintenant les ALPHA et PICTURE en les plaçant au bon endroit: dans un Container, Panel etc. La version de KGF.dll et la donc sont inchangées. Voici une démo: - Code:
-
dim res% dll_on "KGF.dll"
panel 1 button 10 : parent 10,1 alpha 20 : parent 20,1 : top 20,30 : caption 20,"Test" picture 30 : parent 30,1 : top 30,50 list 50 : left 50,left(1)+width(1)+10 : height 50,200
res% = dll_call3("GetObjectTree",object_internal(1),handle(50),0) end et le résultat, montrant les objets du Panel: En passant l'objet 0, on a l'arbiorscence globale du projet: | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Lun 2 Avr 2018 - 14:41 | |
| Mais c'est rudement intéressant tout ça ! Dis moi tu l'avais caché ou celui-là ? Une question klaus, est ce que cette fonction reconnaît tout les objets de Panoramic à ce jour ? Ps : Dixit la nouvelle photo, pour le coup on te prendra vraiment pour le père noël maintenant ! Remarques que c'était déjà le cas même sans la photo... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 2 Avr 2018 - 14:49 | |
| - Citation :
- Dis moi tu l'avais caché ou celui-là ?
Mais elle existe depuis longtemps, et elle est docomentée dans les "Fonctions diverses" de KGF.dll. J'ai juste amélioré la prise en charge des ALPHA et PICTURE qui apparaissent maintenant correctement dans leur parent, alors qu'auparavent, ils n'étaient pas affichés. Non, tous les objets n'apparaissent pas. Par exemple, je n'ai pas les Image et Dlist. Mais tous les objets visuels apparaissent, et beaucoup d'objets non-visuels. Fais l'essai et ajoute dans le code ci-dessus autant d'objets différents que tu veux. Le résultat est immédiatement parlant. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 2 Avr 2018 - 18:09 | |
| Nouvelle version: KGF.dll V8.70 du 02/04/2018Nouveautés: - Nouvelle fonctions: SetDialogDefaultsModules modifiés: KGF.dllLa doc et les sources seront mises à jour ultérieurement. Cette fonction permet d'imposer un dossier de démarrage et/ou une extension par défaut, à un objet OPEN_DIALOG ou SAVE_DIALOG. Voici une démo: - Code:
-
label ouvrir dim res%, f$, d$, e$
alpha 1 : top 1,10 : left 1,10 : caption 1,"Dossier par défaut:" edit 2 : top 2,10 : left 2,120 : width 2,400 text 2,dir_current$
alpha 11 : top 11,40 : left 11,10 : caption 11,"Extension par défaut:" edit 12 : top 12,40 : left 12,120 : width 12,40 text 12,"txt" alpha 13 : top 13,40 : left 13,170 : caption 13,"(sans ''*'' ni ''.'')"
button 21 : top 21,70 : left 21,120 : caption 21,"Ouvrir" : on_click 21,ouvrir open_dialog 22
dll_on "KGF.dll"
end
ouvrir: d$ = trim$(text$(2)) e$ = trim$(text$(12)) res% = dll_call3("SetDialogDefaults",object_internal(22),adr(d$),adr(e$)) f$ = file_name$(22) message f$ return | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Lun 2 Avr 2018 - 19:29 | |
| Je viens de tester avec ton code et sans aucun changement... C'est OK pour le chemin mais pas pour les extensions. J'ai tous les fichiers qui apparaissent malgré l’extension txt ! | |
| | | 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
| |
| |
| |