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
» Détection connexion internet
par JL35 Aujourd'hui à 18:39

» Le parcours du cavalier sur un échiquier 8 x 8
par pascal10000 Hier à 13:26

» Casse-tête : Echanger les positions des cavaliers
par papydall Sam 22 Juil 2017 - 19:42

» Compilateur FBPano
par jean_debord Sam 22 Juil 2017 - 10:54

» demande pour recuperer un text speciale
par pascal10000 Ven 21 Juil 2017 - 22:04

» KGF_dll - nouvelles versions
par Klaus Ven 21 Juil 2017 - 14:29

» Amélioration de la commande HINT
par papydall Mer 19 Juil 2017 - 3:30

» TEST SUR SHAPE
par papydall Mer 19 Juil 2017 - 1:17

» Un challenge à relever
par papydall Mar 18 Juil 2017 - 21:25

» Astuce : Indenter plusieurs lignes de code à la fois
par papydall Mar 18 Juil 2017 - 1:32

» Suggestion pour le forum
par papydall Lun 17 Juil 2017 - 20:28

» Truver les handles des onglets de Panoramic Editor
par Klaus Lun 17 Juil 2017 - 18:20

» Synedit_Editor - nouvelles versions
par Klaus Lun 17 Juil 2017 - 13:46

» Détermine si oui ou non un objet est PARENT d'un autre objet
par Klaus Dim 16 Juil 2017 - 11:58

» Une autre façon de terminer une application.
par papydall Dim 16 Juil 2017 - 3:53

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2017
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      
CalendrierCalendrier

Partagez | 
 

 KGF_dll - nouvelles versions

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1 ... 5, 6, 7 ... 23 ... 40  Suivant
AuteurMessage
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 24 Jan 2016 - 4: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5841
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 24 Jan 2016 - 11: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
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 24 Jan 2016 - 14: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 24 Jan 2016 - 18: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 26 Jan 2016 - 17: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 8 Fév 2016 - 20: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:

Sympa, ce qu'on peut faire en Panoramic, non ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7930
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 8 Fév 2016 - 20: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
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 8 Fév 2016 - 21: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7930
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 8 Fév 2016 - 21: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
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7930
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 8 Fév 2016 - 22:09


scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7930
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 8 Fév 2016 - 22: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
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

Nombre de messages : 2353
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 9 Fév 2016 - 1: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
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 9 Fév 2016 - 1: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 9 Fév 2016 - 1: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:

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

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 9 Fév 2016 - 1: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Laurent (Minibug)

avatar

Nombre de messages : 2353
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 9 Fév 2016 - 2: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
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 9 Fév 2016 - 2: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 9 Fév 2016 - 4: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 9 Fév 2016 - 5: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Laurent (Minibug)

avatar

Nombre de messages : 2353
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 9 Fév 2016 - 9:20

Bonjour Klaus.

Je viens de tester le clic, ça fonctionne très bien !
merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7930
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mar 9 Fév 2016 - 14: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
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 9 Fév 2016 - 15: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 9 Fév 2016 - 17: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7930
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mar 9 Fév 2016 - 22: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
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mer 10 Fév 2016 - 2: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: KGF_dll - nouvelles versions   

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 6 sur 40Aller à la page : Précédent  1 ... 5, 6, 7 ... 23 ... 40  Suivant
 Sujets similaires
-
» Nouvelles versions éditeur et firmware FR3X
» Nouvelles versions de TC et TP
» Nouvelles versions de TypViewer 4.015 et suivantes
» Deux nouvelles versions de la Porsche 911 (type 991)
» Dacia : La Success Story Continue Avec Quatre Nouvelles Versions Et Séries Limitées

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: