FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Planétarium virtuel.
par Jack Hier à 20:59

» ajouter des blancs dans un TXT
par lepetitmarocain Mer 15 Aoû 2018 - 13:00

» 11 (en analyse): commandes sur TAB et SUB_MENU.
par Jack Mar 14 Aoû 2018 - 14:10

» 10 (en analyse): Erreur sur variable locale.
par Jack Mar 14 Aoû 2018 - 14:05

» Métamatière, éternité et renouvellement
par Oscaribout Mar 14 Aoû 2018 - 12:40

» De retour...
par Yannick Lun 13 Aoû 2018 - 15:11

» bug SEVERE fnc+sub : (35)name already defined
par Oscaribout Dim 12 Aoû 2018 - 23:55

» Encadrement
par Jean Claude Dim 12 Aoû 2018 - 11:53

» Des rectangles...
par JL35 Dim 12 Aoû 2018 - 10:53

» TRIGGER_KEY_COMBINED_TOUCH
par Jean Claude Mar 7 Aoû 2018 - 20:58

» ITEM_SELECT N,L pour synedit
par Jean Claude Mar 7 Aoû 2018 - 19:11

» amélioration panoramic
par silverman Dim 5 Aoû 2018 - 18:34

» Commande file_readln.
par Pedro Alvarez Dim 5 Aoû 2018 - 17:08

» Klaus ?
par Jack Sam 4 Aoû 2018 - 22:48

» Défragmentation du disque dur
par JL35 Sam 4 Aoû 2018 - 21:06

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2018
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier

Partagez | 
 

 KGF_dll - nouvelles versions

Aller en bas 
Aller à la page : Précédent  1 ... 15 ... 26, 27, 28, 29  Suivant
AuteurMessage
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 24 Fév 2018 - 19:15

Nouvelle version:
KGF.dll V8.57 du 24/02/2018

Nouveautés:
- nouvel objet: 7Zip

Modules modifiés:
KGF.dll
KGF.chm


La 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 27 Fév 2018 - 2:10

Nouvelle version:
KGF.dll V8.59 du 26/02/2018

Nouveautés:
- nouvelle fonction: DeleteFrom7Zip

Modules modifiés:
KGF.dll
KGF.chm


La 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 27 Fév 2018 - 11:08

Nouvelle version:
KGF.dll V8.60 du 27/02/2018

Nouveautés:
- nouvelle fonction: DeleteFolderFrom7Zip
- DeleteFrom7Zip: renommée en DeleteFileFrom7Zip


Modules modifiés:
KGF.dll
KGF.chm


La 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 5 Mar 2018 - 0:29

Nouvelle version:
KGF.dll V8.61 du 05/03/2018

Nouveautés:
- nouvel objet: ScrollImage
- nouvel objet: ScrollPanel
- nouvel objet: IconComboBox


Modules modifiés:
KGF.dll
KGF.chm


La 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

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 5 Mar 2018 - 21:45

Nouvelle version:
KGF.dll V8.62 du 05/03/2018

Nouveautés:
- IconComboBox: réécriture des procédures internes
- changement d'interface pour CreateIconComboBox
- changement d'interface pour AddItemToIconComboBox


Modules modifiés:
KGF.dll
KGF.chm


La 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:
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 6 Mar 2018 - 11:22

Nouvelle version:
KGF.dll V8.63 du 06/03/2018

Nouveautés:
- nouvelles fonctions: GetIconComboBoxHandle et SetColorsForIconComboBox
- nouvel objet: IconListBox (mêmes fonctions que IconComboBox - remplacer "Combo" par "List")


Modules modifiés:
KGF.dll
KGF.chm


La 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

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.chm


La 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
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Jeu 22 Mar 2018 - 23:57

Nouvelle version:
KGF.dll V8.68 du 22/03/2018

Nouveautés:
- Nouvelle fonctions: SetTranslucent

Modules modifiés:
KGF.dll
KGF.chm


La 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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:

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2996
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: 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à ? Laughing Laughing

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...
lol! lol! lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 2 Avr 2018 - 18:09

Nouvelle version:
KGF.dll V8.70 du 02/04/2018

Nouveautés:
- Nouvelle fonctions: SetDialogDefaults

Modules modifiés:
KGF.dll

La 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
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2996
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: 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 ! Suspect
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Contenu sponsorisé




MessageSujet: Re: KGF_dll - nouvelles versions   

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 27 sur 29Aller à la page : Précédent  1 ... 15 ... 26, 27, 28, 29  Suivant
 Sujets similaires
-
» Nouvelles versions de TC et TP
» Deux nouvelles versions de la Porsche 911 (type 991)
» Dacia : La Success Story Continue Avec Quatre Nouvelles Versions Et Séries Limitées
» désolé de nepas donner de mes nouvelles
» 2 versions de mapsource sur PC?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: