FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
KGF_dll - nouvelles versions - Page 6 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
KGF_dll - nouvelles versions - Page 6 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
KGF_dll - nouvelles versions - Page 6 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
KGF_dll - nouvelles versions - Page 6 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
KGF_dll - nouvelles versions - Page 6 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
KGF_dll - nouvelles versions - Page 6 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
KGF_dll - nouvelles versions - Page 6 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
KGF_dll - nouvelles versions - Page 6 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
KGF_dll - nouvelles versions - Page 6 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
KGF_dll - nouvelles versions - Page 6 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
KGF_dll - nouvelles versions - Page 6 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
KGF_dll - nouvelles versions - Page 6 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
KGF_dll - nouvelles versions - Page 6 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
KGF_dll - nouvelles versions - Page 6 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
KGF_dll - nouvelles versions - Page 6 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -29%
DYSON V8 Origin – Aspirateur balai sans fil
Voir le deal
269.99 €

 

 KGF_dll - nouvelles versions

Aller en bas 
+8
JL35
Marc
papydall
Jicehel
Yannick
pascal10000
Minibug
Klaus
12 participants
Aller à la page : Précédent  1 ... 5, 6, 7 ... 23 ... 40  Suivant
AuteurMessage
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyDim 24 Jan 2016 - 2:48

KGF.dll V5.80 du 23/01/2016

Nouveautés:
- nouveau jeu de 6 fonctions pour gérer la communication entre programmes, sur la machine locale, mais également en réseau local ou même en réseau distant

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

Cette version, totalement indépendante des deux fonctions IPC qui continuent d'exister, va beaucoup plus loin dans la gestion des messages circulant entre programmes. Les messages peuvent atteindre 65535 caractères (sans zéro binaire !) et peuvent être envoyés à des programmes résidant sur des machines distantes, en réseau. On peut créer autant de boites à lettre qu'on veut, et ces boites peuvent contenir chacune un nombre non limité de messages. Ces messages s'empilent dans une boite, et sont lus dans leur ordre d'arrivée (pile FIFO - First In First Out). Je poste un exemple d'utilisation comme application client/serveur dans la rubrique des sources et utilitaires à partager.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyDim 24 Jan 2016 - 9:12

Bravo Klaus et j'espère que ces nouvelles fonctions vont être mise en application par toi ou quelqu'un d'autre pour des tas d'applications. On peut imaginer des jeux se jouant à deux sur deux machines différentes (une sur laquelle tournerait le serveur et le client et l'autre qu'avec le client se connectant au serveur en réseau) Une bataille navale par exemple, un pendu pour lequel le plus rapide gagne, un tetris, un monde en 3D ou 2 personnages ou tanks s'affrontent ? Mais aussi des applications par exemple éducative avec un serveur "professeur" et des clients "éléves" qui doivent répondre aux exercices ? Enfin on verra bien les idées et les applications qui vont en découler.
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyDim 24 Jan 2016 - 12:09

KGF.dll V5.81 du 24/01/2016

Nouveautés:
- correction d'un bug dans la fonction SearchPatternInBinaryFile

Modules modifiés:
KGF.dll

La doc est inchangée. Les sources sont à jour.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyDim 24 Jan 2016 - 16:45

KGF.dll V5.82 du 24/01/2016

Nouveautés:
- nouvelle fonction SearchPatternInBinaryFileEx

Modules modifiés:
KGF.dll
KGF.dll


La doc et les sources sont à jour.

La nouvelle fonction SearchPatternInBinaryFileEx est une extension de la fonction SearchPatternInBinaryFile déjà existante, avec des fonctionnalitées étendues. Elle est documentée sur la page de la fonction SearchPatternInBinaryFile
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyMar 26 Jan 2016 - 15:45

KGF.dll V5.83 du 26/01/2016

Nouveautés:
- correction d'un bug dans la gestion des fichiers binaires (cas de plusieurs fichiers ouverts simultanément)

Modules modifiés:
KGF.dll

La doc est inchangée. Les sources sont à jour.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyLun 8 Fév 2016 - 18:52

KGF.dll V5.85 du 08/02/2016

Nouveautés:
- complément dans la gestion de l'objet ImageList
- nouvel objet TreeView


Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

L'objet ImageList est complétée par deux fonctions qui permettent de sauvegarder le contenu d'un tel objet dans un seul fichier, et de le recharger. Ceci permet de constituer une liste de beaucoup d'images de tout type (bmp, jpg, gif, png, ico, ...) et de n'utiliser ensuite qu'un seul fichier. Rapide et moins lourd. Et le nouvel objet TreeView va utiliser de tels fichiers de sauvegarde d'objets ImageList.

L'objet TreeView est quelque chose que je voulais faire depuis longtemps. Et je me suis heurté à des difficultés techniques pendant des mois, et je viens juste de les surmonter. Donc, profitez du résutat ! C'est un objet du type de liste des dossiers d'un explorateur de fichiers: une liste arborescente, repliable, où chaque ligne représente un "noeud". Dans un explorateur, les lignes contiennent les noms des dossiers et/ou fichiers. Ici, on donne les libellés qu'on peut, on définit sa structure, et on peut même fournir justement une sauvegarde des images d'un objet ImageList pour avoir des icônes pour chaque ligne. Je vous invite de jeter un oeil sur la doc (section "Objets").

En tout cas, voici un petit outil permettant de collectionner des images dans un ImageList, puis de le sauvegarder dans un fichier DAT. On peut aussi, plus tard, recharger le fichier DAT et lui ajouter d'autres images:
Code:
' test_ImageList.bas

label close0, nouveau, charger, sauver, fermer, uneimage

dim res%, f$, IL%, w%, h%

on_close 0,close0

alpha 1 : top 1,10 : left 1,10 : caption 1,"Largeur:"
spin 2 : top 2,10 : left 2,60 : width 2,70 : min 2,12 : max 2,1024 : position 2,16
alpha 3 : top 3,10 : left 3,200 : caption 3,"Hauteur:"
spin 4 : top 4,10 : left 4,250 : width 4,70 : min 4,12 : max 4,1024 : position 4,16

button 11 : top 11,40 : left 11,10 : caption 11,"Nouveau" : on_click 11,nouveau
button 12 : top 12,40 : left 12,110 : caption 12,"Charger" : on_click 12,charger
button 13 : top 13,40 : left 13,210 : caption 13,"Sauver" : on_click 13,sauver
button 14 : top 14,40 : left 14,310 : caption 14,"Fermer" : on_click 14,fermer

button 21 : top 21,70 : left 21,110 : caption 21,"Image" : on_click 21,uneimage

open_dialog 31
save_dialog 32

dll_on "KGF.dll"

end

close0:
  if IL%<>0 then IL% = dll_call1("DeleteImageList",IL%)
  return
  
nouveau:
  if IL%<>0 then IL% = dll_call1("DeleteImageList",IL%)
  w% = position(2)
  h% = position(4)
  IL% = dll_call2("CreateImageList",w%,h%)
  return
  
charger:
  filter 31,"Fichier *.dat|*.dat"
  f$ = file_name$(31)
  if f$="_" then return
  if lower$(right$(f$,4))<>".dat" then f$ = f$ + ".dat"
  if file_exists(f$)=0
    message "N'existe pas"
    return
  end_if
  res% = dll_call2("LoadImageList",IL%,adr(f$))
  message "Résultat: "+str$(res%)
  return

sauver:
  filter 32,"Fichier *.dat|*.dat"
  f$ = file_name$(32)
  if f$="_" then return
  if lower$(right$(f$,4))<>".dat" then f$ = f$ + ".dat"
  if file_exists(f$)=1
    if message_confirmation_yes_no("Existe déjà. Remplacer ?")<>1 then return
  end_if
  res% = dll_call2("SaveImageList",IL%,adr(f$))
  message "Résultat: "+str$(res%)
  return

fermer:
  IL% = dll_call1("DeleteStringList",IL%)
  return
  
uneimage:
  filter 31,""
  f$ = file_name$(31)
  if f$="_" then return
  res% = dll_call4("AddImageToImageList",IL%,adr(f$),0,0)  : ' 0,0 = pas de transparence !
  message "Résultat: "+str$(res%)
  return
C'est ce programme que j'ai utilisé pour fabriquer un fichier DAT contenant 5 icônes carrés de 16x16 pixels (pour les tests, de simples carrés de couleur sufffisent...), et avec ça, j'ai fait le programme de test suivant pour l'objet TreeView:
Code:
' test_treeview.bas

label close0

dim res%, TV1%, txt$, ind%, child%, img$
dim M1% : m1% = 0 - 1

dll_on "KGF.dll"

on_close 0,close0

img$ = "C:\Users\klausgunther\Documents\Mes projets\Mes projets Delphi\KGF\TestImageList.dat"
TV1% = dll_call6("CreateTreeView",handle(0),40,10,200,300,adr(img$))
res% = dll_call5("ResizeTreeView",TV1%,40,10,400,300)
res% = dll_call5("ResizeTreeView",TV1%,M1%,M1%,M1%,M1%)

txt$ = "Racine"
ind% = dll_call3("AddTreeViewRootNode",TV1%,adr(txt$),1)
txt$ = "Enfant 1"
child% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),2)
txt$ = "Enfant 1a"
res% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),3)
res% = dll_call2("SelectTreeViewNode",TV1%,ind%)
txt$ = "Enfant 2"
res% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),4)
res% = dll_call2("SelectTreeViewNode",TV1%,child%)
txt$ = "Insertion devant enfant 1"
if res%<=child% then child% = child% + 1
res% = dll_call4("InsertTreeViewNode",TV1%,0,adr(txt$),5)
res% = dll_call2("SelectTreeViewNode",TV1%,child%)
txt$ = "Insertion après enfant 1"
res% = dll_call4("InsertTreeViewNode",TV1%,1,adr(txt$),4)
' res% = dll_call2("SelectTreeViewNode",TV1%,child%)
' res% = dll_call1("DeleteTreeViewNode",TV1%)



' res% = dll_call1("DeleteTreeView",TV1%)

end

close0:
  res% = dll_call1("DeleteTreeView",TV1%)
  return

Voici une capture d'écran:
KGF_dll - nouvelles versions - Page 6 Aa147
Sympa, ce qu'on peut faire en Panoramic, non ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 6 EmptyLun 8 Fév 2016 - 18:56

Bravo Klaus !

Ce nouvel objet treeview va simplifier l' interface de beaucoup de nos applications/logiciels/programmes ( au choix  Laughing ).
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyLun 8 Fév 2016 - 19:00

Merci, Ygeronimi !

J'oubliais de dire: mon site principal http://klauspanoramic.comxa.com/index.html est inaccessible suite à une attaque DOS massive. Mon site miroir http://klauspanoramic.olympe.in/index.html est à jour, ainsi que le WebDav.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 6 EmptyLun 8 Fév 2016 - 19:08

Panoramic le mag du moins son serveur principal a aussi été attaqué.
Je ne sais pas encore si l' adresse principale est redevenu accessible,
je n' avais plus de connexion depuis hier avec la tempête, et ma première visite
est pour le forum, mais j' ai aussi du créer un site miroir.

Smile
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 6 EmptyLun 8 Fév 2016 - 20:09

KGF_dll - nouvelles versions - Page 6 Captur15
scratch
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 6 EmptyLun 8 Fév 2016 - 20:59

Klaus,

Sur quel système d' exploitation a tu codé la dll ?
Je n' arrive plus à faire une Imagelist et encore moins afficher l' objet treeview...
scratch
Revenir en haut Aller en bas
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyLun 8 Fév 2016 - 23:26

Bonsoir Klaus,

Pareil pour moi, je ne vois pas comment mettre en oeuvre cet objet treeview de KGF ???
Il me serai surement très pratique pour GPP...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyLun 8 Fév 2016 - 23:33

Ben, je sous sous W10, mais j'utilise toujours mon vieux Delphi 6 Personal Edition en mode 32 bits, tout ce qui a de plus banal. Ca devrait même marcher sous XP... les APIs utilisés sont exactement les mêmes. Je n'utilise rien de propre à W10. Tous les outils de production de Delphi (l'IDE, le compilateurs, les librairies), tout est du 13 Juin 2001... on ne parlait même pas encode de Vista.

EDIT

Pour faire marcher TreeView, si vous n'avez pas le fichier de données pour l'objet ImageList, remplacez la ligne 13:
Code:
TV1% = dll_call6("CreateTreeView",handle(0),40,10,200,300,adr(img$))
par
Code:
TV1% = dll_call6("CreateTreeView",handle(0),40,10,200,300,0)
ce qui a pour effet d'annuler les icônes, ou prenez le fichier TestImageList.dat dans mon WebDav, dossier DLLs\. Mais avec le petit outil publié ci-dessus, vous pouvez fabriquer le vôtre, avec le nombre d'icônes que vous voulez. J'ai choisi des icônes de 16x16 pixels, mais vous pouvez prendre 24x24 ou 32x32 - c'est une question visuelle, uniquement. Bien sûr, comme d'habitude, il faudra adapter le chemin...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyLun 8 Fév 2016 - 23:51

Oups... je viens de me rendre compte qu'il n'aimais pas le coup du zéro à la place du nom du fichier, en dernier paramètre. Ceci est corrigé, si vous rechargez à partir du WebDav ou du site miroir. La version savs icône donne ceci:
KGF_dll - nouvelles versions - Page 6 Aa148
et voici le code, modifié en la seule ligne 13:
Code:
' test_treeview.bas

label close0

dim res%, TV1%, txt$, ind%, child%, img$
dim M1% : m1% = 0 - 1

dll_on "KGF.dll"

on_close 0,close0

img$ = "C:\Users\klausgunther\Documents\Mes projets\Mes projets Delphi\KGF\TestImageList.dat"
TV1% = dll_call6("CreateTreeView",handle(0),40,10,200,300,0) : ' adr(img$))
res% = dll_call5("ResizeTreeView",TV1%,40,10,400,300)
res% = dll_call5("ResizeTreeView",TV1%,M1%,M1%,M1%,M1%)

txt$ = "Racine"
ind% = dll_call3("AddTreeViewRootNode",TV1%,adr(txt$),1)
txt$ = "Enfant 1"
child% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),2)
txt$ = "Enfant 1a"
res% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),3)
res% = dll_call2("SelectTreeViewNode",TV1%,ind%)
txt$ = "Enfant 2"
res% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),4)
res% = dll_call2("SelectTreeViewNode",TV1%,child%)
txt$ = "Insertion devant enfant 1"
if res%<=child% then child% = child% + 1
res% = dll_call4("InsertTreeViewNode",TV1%,0,adr(txt$),5)
res% = dll_call2("SelectTreeViewNode",TV1%,child%)
txt$ = "Insertion après enfant 1"
res% = dll_call4("InsertTreeViewNode",TV1%,1,adr(txt$),4)
' res% = dll_call2("SelectTreeViewNode",TV1%,child%)
' res% = dll_call1("DeleteTreeViewNode",TV1%)



' res% = dll_call1("DeleteTreeView",TV1%)

end

close0:
  res% = dll_call1("DeleteTreeView",TV1%)
  return


Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyLun 8 Fév 2016 - 23:53

J'avais signalé que le site normal a un problème suite à une attaque DOS sur leur serveur. Il faut prendre mon WebDav dossier DLLs, ou mon site miroir. Les deux liens sont dans la signature de tous mes posts.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyMar 9 Fév 2016 - 0:02

Ok merci Klaus ca fonctionne !
Je regarderai cela en détail plus tard.

Juste une question : lors d'un click sur l'arborescence y a t il moyen de récupérer la chaîne sélectionnée ?
Merci et bonne nuit !
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyMar 9 Fév 2016 - 0:05

Content que ça marche ! D'ailleurs, l'hébergeur de mon site principal vient de débloquer son serveur, j'ai mis mon site à jour dans la foulée, et tout est rentré dans l'ordre.

Tu dis:
Code:
 lors d'un click sur l'arborescence y a t il moyen de récupérer la chaîne sélectionnée ?
Je suis en train de faire les interactions dans le sens TreeView=>Panoramic, et ça viendra bientôt.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyMar 9 Fév 2016 - 2:24

KGF.dll V5.86 du 09/02/2016

Nouveautés:
- nouvelle fonction SetTreeViewEventReceiver

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

Cette fonction permet de créer ou supprimer un lien entre un objet TreeView existant et un EDIT Panoramicqui recevra les messages des évènements. On ON_CHANGE sur cet EDIT (invisible en général) permet de réagir sur les évènements.

Voici le programme de démo, avec interception du clic et du double-click:
Code:
' test_treeview.bas

label close0, TV1_event

dim res%, TV1%, txt$, ind%, child%, img$
dim M1% : m1% = 0 - 1

dll_on "KGF.dll"

on_close 0,close0

edit 17 : hide 17 : on_change 17,TV1_event

img$ = "C:\Users\klausgunther\Documents\Mes projets\Mes projets Delphi\KGF\TestImageList.dat"
TV1% = dll_call6("CreateTreeView",handle(0),40,10,200,300,adr(img$))
res% = dll_call5("ResizeTreeView",TV1%,40,10,400,300)
res% = dll_call5("ResizeTreeView",TV1%,M1%,M1%,M1%,M1%)

txt$ = "Racine"
ind% = dll_call3("AddTreeViewRootNode",TV1%,adr(txt$),1)
txt$ = "Enfant 1"
child% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),2)
txt$ = "Enfant 1a"
res% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),3)
res% = dll_call2("SelectTreeViewNode",TV1%,ind%)
txt$ = "Enfant 2"
res% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),4)
res% = dll_call2("SelectTreeViewNode",TV1%,child%)
txt$ = "Insertion devant enfant 1"
if res%<=child% then child% = child% + 1
res% = dll_call4("InsertTreeViewNode",TV1%,0,adr(txt$),5)
res% = dll_call2("SelectTreeViewNode",TV1%,child%)
txt$ = "Insertion après enfant 1"
res% = dll_call4("InsertTreeViewNode",TV1%,1,adr(txt$),4)
' res% = dll_call2("SelectTreeViewNode",TV1%,child%)
' res% = dll_call1("DeleteTreeViewNode",TV1%)

' res% = dll_call1("DeleteTreeView",TV1%)

res% = dll_call3("SetTreeViewEventReceiver",TV1%,1,handle(17))

width 0,width(0) + 300
memo 18 : left 18,610 : width 18,200 : height 18,400 : bar_both 18

end

close0:
  res% = dll_call1("DeleteTreeView",TV1%)
  return
  
TV1_event:
  item_add 18,"TV1: "+text$(17)
  return

@Ygeronimi:
Tu as relevé à juste titre une erreur dans la doc pour CreateStringList. Elle a bien 2 paramètres, les deux derniers dans la version "4 paramètres" ont été supprimés. On retrouve ces 2 paramètres dans la fonction AddImageToImageList, pour pouvoir gérer la transparence séparément pour chaque image. Je corrigerai ce problème de doc pour la prochaine fois. Mais regarde le code mon programme de démo des ImageList, que je remets ici:
Code:
' test_ImageList.bas

label close0, nouveau, charger, sauver, fermer, uneimage

dim res%, f$, IL%, w%, h%

on_close 0,close0

alpha 1 : top 1,10 : left 1,10 : caption 1,"Largeur:"
spin 2 : top 2,10 : left 2,60 : width 2,70 : min 2,12 : max 2,1024 : position 2,16
alpha 3 : top 3,10 : left 3,200 : caption 3,"Hauteur:"
spin 4 : top 4,10 : left 4,250 : width 4,70 : min 4,12 : max 4,1024 : position 4,16

button 11 : top 11,40 : left 11,10 : caption 11,"Nouveau" : on_click 11,nouveau
button 12 : top 12,40 : left 12,110 : caption 12,"Charger" : on_click 12,charger
button 13 : top 13,40 : left 13,210 : caption 13,"Sauver" : on_click 13,sauver
button 14 : top 14,40 : left 14,310 : caption 14,"Fermer" : on_click 14,fermer

button 21 : top 21,70 : left 21,110 : caption 21,"Image" : on_click 21,uneimage

open_dialog 31
save_dialog 32

dll_on "KGF.dll"

end

close0:
  if IL%<>0 then IL% = dll_call1("DeleteImageList",IL%)
  return
  
nouveau:
  if IL%<>0 then IL% = dll_call1("DeleteImageList",IL%)
  w% = position(2)
  h% = position(4)
  IL% = dll_call2("CreateImageList",w%,h%)
  return
  
charger:
  filter 31,"Fichier *.dat|*.dat"
  f$ = file_name$(31)
  if f$="_" then return
  if lower$(right$(f$,4))<>".dat" then f$ = f$ + ".dat"
  if file_exists(f$)=0
    message "N'existe pas"
    return
  end_if
  res% = dll_call2("LoadImageList",IL%,adr(f$))
  message "Résultat: "+str$(res%)
  return

sauver:
  filter 32,"Fichier *.dat|*.dat"
  f$ = file_name$(32)
  if f$="_" then return
  if lower$(right$(f$,4))<>".dat" then f$ = f$ + ".dat"
  if file_exists(f$)=1
    if message_confirmation_yes_no("Existe déjà. Remplacer ?")<>1 then return
  end_if
  res% = dll_call2("SaveImageList",IL%,adr(f$))
  message "Résultat: "+str$(res%)
  return

fermer:
  IL% = dll_call1("DeleteStringList",IL%)
  return
  
uneimage:
  filter 31,""
  f$ = file_name$(31)
  if f$="_" then return
  res% = dll_call4("AddImageToImageList",IL%,adr(f$),0,0)  : ' 0,0 = pas de transparence !
  message "Résultat: "+str$(res%)
  return

EDIT

La doc est corrigée...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyMar 9 Fév 2016 - 3:39

Pour les évènements avec TreeView:
un évènement double_click génère systématiquement un évènement click avant le double-click. Ceci peu être indésirable si l'on ne veut traiter que le double clic. Voici une astuce pour éliminer ce simple clic parasite, tout en reconnaissant un simple clic normal:
Code:
' test_treeview.bas

label close0, TV1_event, timout

dim res%, TV1%, txt$, ind%, child%, img$, ClickFlag%, s$
dim M1% : m1% = 0 - 1

dll_on "KGF.dll"

on_close 0,close0

edit 17 : hide 17 : on_change 17,TV1_event
timer 16 : timer_off 16 : timer_interval 16,200 : on_timer 16,timout

img$ = "C:\Users\klausgunther\Documents\Mes projets\Mes projets Delphi\KGF\TestImageList.dat"
TV1% = dll_call6("CreateTreeView",handle(0),40,10,200,300,adr(img$))
res% = dll_call5("ResizeTreeView",TV1%,40,10,400,300)
res% = dll_call5("ResizeTreeView",TV1%,M1%,M1%,M1%,M1%)

txt$ = "Racine"
ind% = dll_call3("AddTreeViewRootNode",TV1%,adr(txt$),1)
txt$ = "Enfant 1"
child% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),2)
txt$ = "Enfant 1a"
res% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),3)
res% = dll_call2("SelectTreeViewNode",TV1%,ind%)
txt$ = "Enfant 2"
res% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),4)
res% = dll_call2("SelectTreeViewNode",TV1%,child%)
txt$ = "Insertion devant enfant 1"
if res%<=child% then child% = child% + 1
res% = dll_call4("InsertTreeViewNode",TV1%,0,adr(txt$),5)
res% = dll_call2("SelectTreeViewNode",TV1%,child%)
txt$ = "Insertion après enfant 1"
res% = dll_call4("InsertTreeViewNode",TV1%,1,adr(txt$),4)
' res% = dll_call2("SelectTreeViewNode",TV1%,child%)
' res% = dll_call1("DeleteTreeViewNode",TV1%)

' res% = dll_call1("DeleteTreeView",TV1%)

res% = dll_call3("SetTreeViewEventReceiver",TV1%,1,handle(17))

width 0,width(0) + 300
memo 18 : left 18,610 : width 18,200 : height 18,400 : bar_both 18

end

close0:
  res% = dll_call1("DeleteTreeView",TV1%)
  return
 
TV1_event:
  s$ = text$(17)
  if left$(s$,7)="double_"
    timer_off 16
    ClickFlag% = 0
    item_add 18,"TV1: "+s$
  else
    ClickFlag% = 1
    timer_on 16
  end_if
  return

timout:
  timer_off 16
  if ClickFlag%=1
    ClickFlag% = 0
    item_add 18,"TV1: "+s$
  end_if
  return

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyMar 9 Fév 2016 - 7:20

Bonjour Klaus.

Je viens de tester le clic, ça fonctionne très bien !
merci
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 6 EmptyMar 9 Fév 2016 - 12:33

Chez moi, la version sans icone fonctionne mais j' ai un souci avec la creation d' imagelist.
J' ai repris ton utilitaire et chaque fois que je veux ajouter une image j' ai un res%=-1.
scratch
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyMar 9 Fév 2016 - 13:26

Avec cet utilitaire, tu procèdes comme suit:
1. cliquer sur "Nouveau" ==> on crée un nouvel objet ImageList vide (objet non visuel !)
2. cliquer sur "Charger" ==> dialogue d'ouverture pour chercher un fichier de sauvegarde d'une ImageList (prendre le fichier TestImageList.dat sur mon WebDav, dossier DLLs\), ou ignorer cette étape pour construire une ImageList nouvelle. Avec mon fichier, cette étape retourne 5 (il y a déjà 5 images dans ce fichier).
3. pour chaque image à ajouter, cliquer sur le bouton "Image" ==> un dialogue d'ouverture permet de choisir un fichier image (dont les dimensions doivent correspondre à celles indiquées dans les objets SPIN en haut de la fenêtre !!!!!!). La fonction retourne le nombre d'images chargées, après l'ajout.
4. cliquer sur le bouton "Sauver" pour enregistrer le contenu de l'ImageList sur disque, sous la forme d'un fichier utilisable par le bouton "Charger".

Le bouton "Fermer" efface tout ce qui est en mémoire, sans sauvegarder.

Si tu suis ces étapes, ça doit marcher. MAis attention: il faut absolument que toutes, je tous bien TOUTES, les images d'une même ImageList aient les mêmes dimensions. Ceci est vérifié par la fonction d'ajout, et elle retourne -1 si ce n'est pas le cas.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyMar 9 Fév 2016 - 15:23

KGF.dll V5.87 du 09/02/2016

Nouveautés:
- création dune version CreateTreeViewEx de CreateTreeView pour mieux gérer le double-click

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

Ceci rend inutile de gérer soi-même, par un timer, la reconnaissance du simple clic "parasite" dans le cas d'un double-click. Donc, on a maintenant:
- CreateTreeView = comme avant
- CreateTreeViewEx = identique, sauf élimination du simple clic dans le cas d'un double-clic

Voici le programme de démo, permettant de choisir la version au lancement du programme:
Code:
' test_treeview.bas

label close0, TV1_event

dim res%, TV1%, txt$, ind%, child%, img$, ClickFlag%, s$
dim M1% : m1% = 0 - 1

dll_on "KGF.dll"

on_close 0,close0

edit 17 : hide 17 : on_change 17,TV1_event

img$ = "C:\Users\klausgunther\Documents\Mes projets\Mes projets Delphi\KGF\TestImageList.dat"
if message_confirmation_yes_no("Optimiser le double-clic ?")=1
  TV1% = dll_call6("CreateTreeViewEx",handle(0),40,10,200,300,adr(img$))
else
  TV1% = dll_call6("CreateTreeView",handle(0),40,10,200,300,adr(img$))
end_if

res% = dll_call5("ResizeTreeView",TV1%,40,10,400,300)
res% = dll_call5("ResizeTreeView",TV1%,M1%,M1%,M1%,M1%)

txt$ = "Racine"
ind% = dll_call3("AddTreeViewRootNode",TV1%,adr(txt$),1)
txt$ = "Enfant 1"
child% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),2)
txt$ = "Enfant 1a"
res% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),3)
res% = dll_call2("SelectTreeViewNode",TV1%,ind%)
txt$ = "Enfant 2"
res% = dll_call3("AddTreeViewChildNode",TV1%,adr(txt$),4)
res% = dll_call2("SelectTreeViewNode",TV1%,child%)
txt$ = "Insertion devant enfant 1"
if res%<=child% then child% = child% + 1
res% = dll_call4("InsertTreeViewNode",TV1%,0,adr(txt$),5)
res% = dll_call2("SelectTreeViewNode",TV1%,child%)
txt$ = "Insertion après enfant 1"
res% = dll_call4("InsertTreeViewNode",TV1%,1,adr(txt$),4)
' res% = dll_call2("SelectTreeViewNode",TV1%,child%)
' res% = dll_call1("DeleteTreeViewNode",TV1%)

' res% = dll_call1("DeleteTreeView",TV1%)

res% = dll_call3("SetTreeViewEventReceiver",TV1%,1,handle(17))

width 0,width(0) + 300
memo 18 : left 18,610 : width 18,200 : height 18,400 : bar_both 18

end

close0:
  res% = dll_call1("DeleteTreeView",TV1%)
  return
 
TV1_event:
    item_add 18,"TV1: "+text$(17)
    return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 6 EmptyMar 9 Fév 2016 - 20:17

Avec le mode d' emploi tout va tout de suite mieux... Embarassed


Par contre, pour "treeview" j' ai un message de type "Panoramic a cessé de fonctionner..."
lors de la fermeture par la croix.

Je pense qu' il faut ajouter la fonction "KillProcessByHandle" au label close0...non ?
scratch
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 EmptyMer 10 Fév 2016 - 0:03

Oui, pour le moment... Ce problème est déjà corrigé dans la version que laquelle je suis en train de travailler et qui viendra prochainement. En attendant, c'est la solution.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





KGF_dll - nouvelles versions - Page 6 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 6 Empty

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 6 sur 40Aller à la page : Précédent  1 ... 5, 6, 7 ... 23 ... 40  Suivant
 Sujets similaires
-
» Nouvelles versions
» KGF_dll - nouvelles versions
» Synedit_Editor - nouvelles versions
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions

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: