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
» Reprise du développement et de la documentation
par Fredisland Aujourd'hui à 12:53

» Une copie de Panoramic Editeur
par Jean Claude Hier à 21:03

» Objet 3D_PLANE, réalisation d'un dé en 3D
par Marc Hier à 0:33

» Cacher la barre des tâches
par Klaus Lun 21 Mai 2018 - 21:27

» Une "base de connaissance" - pour jouer ou plus si affinité
par Minibug Lun 21 Mai 2018 - 10:29

» quel est ce comportement de Panoramic_editor
par Oscaribout Lun 21 Mai 2018 - 0:22

» Des FORM(s) Colorés
par Jean Claude Dim 20 Mai 2018 - 20:58

» Recherches dans un fichier texte
par JL35 Dim 20 Mai 2018 - 20:18

» Problème d'affichage des pages du forum (Résolu)
par Jean Claude Dim 20 Mai 2018 - 20:00

» Créer une application *.exe
par Yannick Ven 18 Mai 2018 - 20:01

» [RÉSOLU] Priorité affichage des objets : comment la définir?
par papydall Ven 18 Mai 2018 - 18:22

» Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK
par Jean Claude Jeu 17 Mai 2018 - 8:37

» [Résolu] Récuperer les fonctions systeme de Panoramic
par Minibug Mar 15 Mai 2018 - 23:21

» Est-ce qu'un fichier est inclus dans l'application ?
par Yannick Mar 15 Mai 2018 - 12:04

» Création d'une application avec Panoramic_Editor
par Klaus Mar 15 Mai 2018 - 0:36

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2018
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 KGF.dll Bug ou pas ?

Aller en bas 
AuteurMessage
Yannick

avatar

Nombre de messages : 8075
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: KGF.dll Bug ou pas ?   Mer 14 Juin 2017 - 12:02

@ Klaus,

Pour remplacer la fonction EXECUTE de Panoramic qui bug en ce moment,
j' ai voulu utiliser celle de KGF et j' ai créer cette sub :
Code:
sub LanceOutils()
   dim_local res%,path$,param$,folder$
      
   path$   = "C:\Users\Yannick\Desktop\Outils_Couleurs\PanoColorSelect.exe"
   param$  = str$(Handle_form("Exemple d utilisation de Outils Couleurs"))
   folder$ = ""
   res% = DLL_call4("ExecuteProgram",adr(path$),adr(param$),adr(folder$),0)
   if res%<0
      message "Echec du lancement !"
   end_if  
end_sub

mais j' ai toujours le message d' échec... Sad
Aurai je raté quelque chose ou il y a un problème avec la fonction ?

edit : 
Il en est de même pour
res% = DLL_call3("ExecuteProgramAndWait",adr(path$),adr(param$),adr(folder$))
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF.dll Bug ou pas ?   Mer 14 Juin 2017 - 12:55

Il y avait deux points à corriger, dans ma fonction:
1. le "paramètre" était supposé être un nom de fichier. La fonctioin en déduisait implicitement le nom court, et pan ! ça ne marche pas évidemment pour un paramètre numérique ! Ceci est corrigé.
2. il y a un gros problème avec Panoramic et des chaînes de caractères encadrées par des guillemets. Il faudrait entourer le chemin vers le fichier EXE par des guillemets, mais je n'ai trouvé aucun moyen de le faire. J'ai donc ajouté cela à la fonction DLL pour ajouter ces guillemets systématiquement.

D'ailleurs, Jack, si tu nous lis, ce dernier point est vraiment un handicap. Panoramic "interprète" le contenu d'une chaîne de caractères, au moment de son affectation dans une autre, en éliminant les guillemets extérieurs. Même de double guillemets extérieurs ! Exemple:


Code:
dim s$, c$
c$ = chr$(34)
s$ = c$+"Ceci est mon texte"+c$


s$ ne contiendra aucun guillemet. Si tu ne peux pas modifier cela, pourrais-tu créer une fonction du type


Code:
s$ = QuotedString(s$,c$)


avec c$ étant le caractère à ajouter devant et derrière s$ ?


Pour en revenir à ton problème, Yannick:
J'ai testé avec le code suivant:
Code:
 caption 0,"Exemple d utilisation de Outils Couleurs"
  dim res%,path$,param$,folder$, c$
  c$ = chr$(34)
    
  dll_on "KGF.dll"
  open_dialog 1
  path$ = file_name$(1)
  if path$="_" then terminate
  
  param$  = str$(Handle_form("Exemple d utilisation de Outils Couleurs"))
  folder$ = ""
  res% = DLL_call4("ExecuteProgram",adr(path$),adr(param$),adr(folder$),0)
  if res%<0
      message "Echec du lancement !"
  end_if
Comme les deux points ci-dessus sont gérés dans ma DLL, le programme appelé est lancé correctement. Mais il y a toujours ce message au démarrage du programme, qui tente de lancer un autre programme dont le nom serait composé du nom du programme lui-même et du paramètre... On valide ce message, et le programme s'exécute normalement. Recharge la nouvelle version de KGF.dll.

Ceci est toujours le même bug dans l'interpréteur de Panoramic, présent et signalé depuis un bon moment, par moi et d'autres. Faudra bien un jour ou l'autre que Jack corrige cela, même si je sais bien qu'en ce moment, il n'est pas en mesure de le faire.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 8075
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 14 Juin 2017 - 13:37

Ton petit programme fonctionne, j' ai du raté quelque chose dans ma sub Wink .
Mais, malheureusement, il n' empêche pas le bug panoramic des paramètres etc...
J' ai aussi droit au message du fichier introuvable avec le paramètre en nom de fichier. Mad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8075
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 14 Juin 2017 - 13:43

Ce qui est curieux c' est que ton file_name$(1) renvoie la même chose que ce que j' ai mis dans la variable path$. 
ma variable path$ bug et pas la tienne.... Suspect
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF.dll Bug ou pas ?   Mer 14 Juin 2017 - 14:45

Qu'est-ce que tu veux que je dise... charge le résultat de FILE_NAME$ dans une autre variable et compare les deux - visuellement et par programme. Il doit y avoir une différence.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 8075
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 14 Juin 2017 - 16:09

Embarassed  c' est un peu ma faute, j' utilisais la fonction ExecuteProgramAndWait
qui elle n' a apparemment pas été modifié.
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF.dll Bug ou pas ?   Mer 14 Juin 2017 - 19:08

Oups... je vais y remédier !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 8075
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mar 11 Juil 2017 - 15:05

J'ai un souci avec TreeView et l' affichage des icônes.

Pour être sûr de mon fait, je crée un imagelist avec 4 icônes *.bmp au format 16x16 que je sauvegarde 
avant de créer le treeview.
( donc 4 fichiers bmp de ton cru feront l' affaire pour tester.)

Pendant la création, je les extrait dans bmp2$ pour visualiser les images enregistrées dans un button_picture.

Mais voilà, pas tout ce passe comme je le voudrai.
Voilà le code, tes yeux verraient ils une erreur de ma part ? ou il y a un souci avec Kgf ?

Code:
dim It$
dim txt$

dim kgf$ : kgf$ = "C:\KGF\KGF.dll"
dim dir$ : dir$ = "C:\Users\Yannick\Desktop\PanoramicTools\Outils\"
dim fic$ : fic$ = "C:\Users\Yannick\Desktop\PanoramicTools\ico.ilb"

dim res%
dim IL%
dim TV%

label change

dll_on kgf$

height 0,400
width 0,350
top 0,100
left 0,100

font_name 0,"Arial"
font_size 0,8
font_bold 0

caption 0,"Pano Toolbox"

edit 1 : hide 1 : on_change 1,change

button_picture 2
height 2,24
width 2,24
top 2,height_client(0)-24
left 2,0

CreateImageList()

TV% = dll_call3("CreateTreeViewEx",handle(0),1,adr(fic$))
res% = dll_call3("SetTreeViewEventReceiver",TV%,1,handle(1))
res% = dll_call5("ResizeTreeView",TV%,0,0,width_client(0),height_client(0)-24)

dir_change dir$
res% = dll_call4("AddTreeViewRootNode",TV%,adr(dir$),0,0)
res% = dll_call4("SetTreeViewOptions",TV%,1,7,0)
res% = dll_call4("SetTreeViewOptions",TV%,1,8,1)

it$ = file_find_first$
if instr(it$,chr$(46))=0
  txt$ = "Outils"
  res% = dll_call3("SelectTreeViewNode",TV%,0,0)
  res% = dll_call4("AddTreeViewChildNode",TV%,adr(txt$),0,1)
end_if
it$ = file_find_next$
while it$<>"_"
  if instr(it$,chr$(46))=0
      txt$ = "Outils"
      res% = dll_call3("SelectTreeViewNode",TV%,0,0)
      res% = dll_call4("AddTreeViewChildNode",TV%,adr(txt$),0,1)
  end_if
  it$ = file_find_next$
end_while
file_find_close
end
' ------------------------------------------------------------------------------
change: 
  if left$(text$(1),instr(text$(1),chr$(44))-1) = "double_click"
      message text$(1)
  end_if
return
' ------------------------------------------------------------------------------
sub CreateImageList()
  dim_local i%,bmp$,bmp2$
  bmp2$ = "C:\Users\Yannick\Desktop\PanoramicTools\But.bmp"
 
  IL% = dll_call2("CreateImageList",16,16)

  for i%=0 to 3
      bmp$ = "C:\Users\Yannick\Desktop\PanoramicTools\B00"+str$(i%+1)+".bmp"
      res% = dll_call4("AddImageToImageList",IL%,adr(bmp$),0,0)     
      if res%<>0
        message "Echec !"+chr$(13)+"Création de l' imagelist a échoué."
        exit_sub
      else
        res% = dll_call5("ExtractImageFromImageList",IL%,i%,0,0,adr(bmp2$))
        file_load 2,bmp2$     
      end_if
  next i%

  res% = dll_call2("SaveImageList",IL%,adr(fic$))
  if res%<>0
      message "Echec !"+chr$(13)+"Création de l' imagelist a échoué."
      exit_sub
  end_if
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF.dll Bug ou pas ?   Mar 11 Juil 2017 - 21:35

Je n'arrive pas à bien comprendre le but poursuivi par ton programme.

Déjà, pour commencer, dans la SUB CreateImageList, tu crées une ImageList (ok), tu y charges 4 images (ok), et immédiatement après le chargement de chaque image, tu l'extraits dans un fichier toujours du même nom pour ensuite charger ce fichier dans toujours le même objet picture 2. A quoi ça sert ?

Ensuite, je ne comprends pas bien ta boucle de recherche de fichier dans un dossier. Le principe est le suivant:
Code:
it$ = file_find_first$
while it$<>"_"
  if left$(it$,1)<>"."
    ' ici, un a un candidat possible pour nom de fichier
    if dir_exists(it$)=0
      ' ici, c'est vraiment un fichier, pas un dossier
      ' donc traiter de fichier ici...
    end_if
  end_if
end_while
file_find_close

Si tu as un problème avec une fonction DLL en particulier, essaie de faire un petit code mettant en oeuvre juste cette erreur. Sinon, c'est vraiment très complexe à trouver, surtout si on a juste l'indication "ça ne marche pas", sans savoir ce qui cloche, dans quelles conditions, pour quelles fonctions... enfin, tu n'es pas un novice et tu sais de quoi je parle.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 8075
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 12 Juil 2017 - 9:39

Autant pour moi... Embarassed

Mon erreur vient du fait que dans presque tous les cas d' utilisation d'une imagelist on utilise
le numéro d' indice de l' image à utiliser donc en partant de 0 jusqu' à ...
Or, pour le treeview on part de 1, 0 signifie pas d' image. 

J' ai fait des noeuds et pourtant ce n' est pas la première fois que je me sers de cet objet. 
Embarassed
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8075
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 12 Juil 2017 - 17:11

Klaus,

Je m' aperçois que le souci vient des fonctions d' imagelist.
L' imagelist est créé, il contient bien des images mais elles sont vides (blanches).
Sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF.dll Bug ou pas ?   Mer 12 Juil 2017 - 17:43

Alors, es-tu sûr que tes 4 images sont bien en format 16x16 pixels ? Je ne vois rien qui puisse se passer mal, sinon...
Essaie avec
Code:
...
      for i%=0 to 3
          bmp$ = "C:\Users\Yannick\Desktop\PanoramicTools\B00"+str$(i%+1)+".bmp"
          res% = dll_call4("AddImageToImageList",IL%,adr(bmp$),1,0) 
...
Je sais, le noir sera pris comme couleur de transparence. C'est juste pour observer le résultat... Pour ma part, je me sers de cette fonction en permanence et tout semble marcher.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: KGF.dll Bug ou pas ?   

Revenir en haut Aller en bas
 
KGF.dll Bug ou pas ?
Revenir en haut 
Page 1 sur 1

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: